deprecate chan_agent callback mode
authorKevin P. Fleming <kpfleming@digium.com>
Sat, 19 Aug 2006 17:05:43 +0000 (17:05 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Sat, 19 Aug 2006 17:05:43 +0000 (17:05 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40521 65c4cc65-6c06-0410-ace0-fbb531ad65f3

UPGRADE.txt
channels/chan_agent.c

index 1c572cb..09ba006 100644 (file)
@@ -293,6 +293,13 @@ The Zap channel:
 * Support for MFC/R2 has been removed, as it has not been functional for some
   time and it has no maintainer.
 
+The Agent channel:
+
+* Callback mode (AgentCallbackLogin) is now deprecated, since the entire function
+  it provided can be done using dialplan logic, without requiring additional
+  channel and module locks (which frequently caused deadlocks). An example of
+  how to do this using AEL dialplan is in doc/queues-with-callback-members.txt.
+
 The G726-32 codec:
 
 * It has been determined that previous versions of Asterisk used the wrong codeword
@@ -360,5 +367,5 @@ Music on Hold:
   starting music on hold on the channel. An example for how this would be
   useful is in an enterprise network of Asterisk servers. When one phone on one
   server puts a phone on a different server on hold, the remote server will be
-  responsibile for playing the hold music to its local phone that was put on
+  responsible for playing the hold music to its local phone that was put on
   hold instead of the far end server across the network playing the music.
index 1c3f8d8..b8a54e7 100644 (file)
@@ -2137,6 +2137,19 @@ static int login_exec(struct ast_channel *chan, void *data)
        return __login_exec(chan, data, 0);
 }
 
+static void callback_deprecated(void)
+{
+       static int depwarning = 0;
+
+       if (!depwarning) {
+               depwarning = 1;
+
+               ast_log(LOG_WARNING, "AgentCallbackLogin is deprecated and will be removed in a future release.\n");
+               ast_log(LOG_WARNING, "See doc/queues-with-callback-members.txt for an example of how to achieve\n");
+               ast_log(LOG_WARNING, "the same functionality using only dialplan logic.\n");
+       }
+}
+
 /*!
  *  Called by the AgentCallbackLogin application (from the dial plan).
  * 
@@ -2147,6 +2160,8 @@ static int login_exec(struct ast_channel *chan, void *data)
  */
 static int callback_exec(struct ast_channel *chan, void *data)
 {
+       callback_deprecated();
+
        return __login_exec(chan, data, 1);
 }
 
@@ -2168,6 +2183,8 @@ static int action_agent_callback_login(struct mansession *s, struct message *m)
        struct agent_pvt *p;
        int login_state = 0;
 
+       callback_deprecated();
+
        if (ast_strlen_zero(agent)) {
                astman_send_error(s, m, "No agent specified");
                return 0;