]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
The SLATRUNK_STATUS variable indicated "SUCCESS" for both an answer of the
authorRussell Bryant <russell@russellbryant.com>
Fri, 15 Jun 2007 15:27:34 +0000 (15:27 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 15 Jun 2007 15:27:34 +0000 (15:27 +0000)
incoming call on the trunk, or if the trunk reached its ring timeout.
This patch changes the variable to say "RINGTIMEOUT" in that case.
(issue #9973, reported by n00dle, patch by me)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69518 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_meetme.c

index 555f6d2179f70a042d41fbc50f8454a35670ac38..ba4e659821a45ed690a6e20fac49136a529a9123 100644 (file)
@@ -296,13 +296,21 @@ static const char *slastation_desc =
 "the argument \"station\" should be just the station name.  If the call was\n"
 "initiated by pressing a line key, then the station name should be preceded\n"
 "by an underscore and the trunk name associated with that line button.\n"
-"For example: \"station1_line1\".";
+"For example: \"station1_line1\"."
+"  On exit, this application will set the variable SLASTATION_STATUS to\n"
+"one of the following values:\n"
+"    FAILURE | CONGESTION | SUCCESS\n"
+"";
 
 static const char *slatrunk_desc =
 "  SLATrunk(trunk):\n"
 "This application should be executed by an SLA trunk on an inbound call.\n"
 "The channel calling this application should correspond to the SLA trunk\n"
-"with the name \"trunk\" that is being passed as an argument.\n";
+"with the name \"trunk\" that is being passed as an argument.\n"
+"  On exit, this application will set the variable SLATRUNK_STATUS to\n"
+"one of the following values:\n"
+"   FAILURE | SUCCESS | UNANSWERED | RINGTIMEOUT\n" 
+"";
 
 #define MAX_CONFNUM 80
 #define MAX_PIN     80
@@ -3725,6 +3733,7 @@ static int sla_calc_trunk_timeouts(unsigned int *timeout)
                time_elapsed = ast_tvdiff_ms(ast_tvnow(), ringing_trunk->ring_begin);
                time_left = (ringing_trunk->trunk->ring_timeout * 1000) - time_elapsed;
                if (time_left <= 0) {
+                       pbx_builtin_setvar_helper(ringing_trunk->trunk->chan, "SLATRUNK_STATUS", "RINGTIMEOUT");
                        AST_LIST_REMOVE_CURRENT(&sla.ringing_trunks, entry);
                        sla_stop_ringing_trunk(ringing_trunk);
                        res = 1;
@@ -4298,8 +4307,9 @@ static int sla_trunk_exec(struct ast_channel *chan, void *data)
        conf = NULL;
        trunk->chan = NULL;
        trunk->on_hold = 0;
-
-       pbx_builtin_setvar_helper(chan, "SLATRUNK_STATUS", "SUCCESS");
+       
+       if (!pbx_builtin_getvar_helper(chan, "SLATRUNK_STATUS"))
+               pbx_builtin_setvar_helper(chan, "SLATRUNK_STATUS", "SUCCESS");
 
        /* Remove the entry from the list of ringing trunks if it is still there. */
        ast_mutex_lock(&sla.lock);