documenting changes as a result of adding TCP functionality to ExternalIVR
authorJeff Peeler <jpeeler@digium.com>
Thu, 13 Mar 2008 23:12:59 +0000 (23:12 +0000)
committerJeff Peeler <jpeeler@digium.com>
Thu, 13 Mar 2008 23:12:59 +0000 (23:12 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@108639 65c4cc65-6c06-0410-ace0-fbb531ad65f3

CHANGES
apps/app_externalivr.c
doc/externalivr.txt

diff --git a/CHANGES b/CHANGES
index d30f4d1..052c370 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -399,6 +399,8 @@ Other Dialplan Application Changes
      or NOCHANNEL if the given channel was not found.
   * The silencethreshold setting that was previously configurable in multiple
      applications is now settable globally via dsp.conf.
+  * Added ability to communicate over a TCP socket instead of forking a child process for the 
+    ExternalIVR application.
 
 Music On Hold Changes
 ---------------------
index 5c63fb6..b01253d 100644 (file)
@@ -52,13 +52,13 @@ static const char *app = "ExternalIVR";
 static const char *synopsis = "Interfaces with an external IVR application";
 
 static const char *descrip =
-"  ExternalIVR(command[,arg[,arg...]]): Forks a process to run the supplied command,\n"
-"and starts a generator on the channel. The generator's play list is\n"
-"controlled by the external application, which can add and clear entries\n"
-"via simple commands issued over its stdout. The external application\n"
-"will receive all DTMF events received on the channel, and notification\n"
-"if the channel is hung up. The application will not be forcibly terminated\n"
-"when the channel is hung up.\n"
+"  ExternalIVR(command|ivr://ivrhost[,arg[,arg...]]): Either forks a process\n"
+"to run given command or makes a socket to connect to given host and starts\n"
+"a generator on the channel. The generator's play list is controlled by the\n"
+"external application, which can add and clear entries via simple commands\n"
+"issued over its stdout. The external application will receive all DTMF events\n"
+"received on the channel, and notification if the channel is hung up. The\n"
+"application will not be forcibly terminated when the channel is hung up.\n"
 "See doc/externalivr.txt for a protocol specification.\n";
 
 /* XXX the parser in gcc 2.95 gets confused if you don't put a space between 'name' and the comma */
index 73fb582..b17ed88 100644 (file)
@@ -10,7 +10,7 @@ blocking).
 
 The arguments to ExternalIVR() consist of the command to execute and
 any arguments to pass to it, the same as the System() application
-accepts. The external command will be executed in a child process,
+accepts. The external command can be executed in a child process,
 with its standard file handles connected to the Asterisk process as
 follows:
 
@@ -18,6 +18,14 @@ stdin (0) - DTMF and hangup events will be received on this handle
 stdout (1) - Playback and hangup commands can be sent on this handle
 stderr (2) - Error messages can be sent on this handle
 
+The external command can also be executed on another host entirely
+(specified by the ivr:// prefix), with its standard file handles
+connected to the Asterisk process as follows:
+
+stdin (0) - DTMF and hangup events will be received on this handle
+stdout (1) - Playback and hangup commands can be sent on this handle
+There are no error messages available when using ExternalIVR over TCP.
+
 The application will also create an audio generator to play audio to
 the channel, and will start playing silence. When your application
 wants to send audio to the channel, it can send a command (see below)