]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge script <automerge@asterisk.org>
Sat, 20 May 2006 03:06:40 +0000 (03:06 +0000)
committerAutomerge script <automerge@asterisk.org>
Sat, 20 May 2006 03:06:40 +0000 (03:06 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@29006 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c
apps/app_sms.c

index 61cf456176b6a94930c4e8b293ff2128c96eefb8..4fd6b53640330a461a17a65c667786d3584061fc 100644 (file)
@@ -2125,10 +2125,10 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
 
                cur = cur->next;
        }
-       if (qe->parent->timeout)
-               to = qe->parent->timeout * 1000;
-       else
-               to = -1;
+       if (qe->expire && (!qe->parent->timeout || (qe->expire - now) <= qe->parent->timeout))
+               to = (qe->expire - now) * 1000;
+       else
+               to = (qe->parent->timeout) ? qe->parent->timeout * 1000 : -1;
        ring_one(qe, outgoing, &numbusies);
        ast_mutex_unlock(&qe->parent->lock);
        if (use_weight) 
index 4c15cc185fa28625247f952d2c666e777c85847d..beaf4e2a11ca2b843fa4c1a37f78fda196813762 100644 (file)
@@ -1178,25 +1178,24 @@ static void sms_messagetx(sms_t * h)
 static int sms_generate (struct ast_channel *chan, void *data, int len, int samples)
 {
        struct ast_frame f = { 0 };
-       unsigned char waste[AST_FRIENDLY_OFFSET];
+#define MAXSAMPLES 800
 #ifdef OUTALAW
-       unsigned char buf[800];
+       unsigned char *buf;
 #else
-       signed short buf[800];
+       short *buf;
 #endif
+#define SAMPLE2LEN sizeof(*buf)
        sms_t *h = data;
        int i;
 
-       if (len > sizeof (buf)) {
-               ast_log (LOG_WARNING, "Only doing %d bytes (%d bytes requested)\n", (int)(sizeof (buf) / sizeof (signed short)), len);
-               len = sizeof (buf);
-#ifdef OUTALAW
-               samples = len;
-#else
-               samples = len / 2;
-#endif
+       if (samples > MAXSAMPLES) {
+               ast_log (LOG_WARNING, "Only doing %d samples (%d requested)\n",
+                        MAXSAMPLES, samples);
+               samples = MAXSAMPLES;
        }
-       waste[0] = 0;                                    /* make compiler happy */
+       len = samples * SAMPLE2LEN + AST_FRIENDLY_OFFSET;
+       buf = alloca(len);
+
        f.frametype = AST_FRAME_VOICE;
 #ifdef OUTALAW
        f.subclass = AST_FORMAT_ALAW;
@@ -1206,8 +1205,7 @@ static int sms_generate (struct ast_channel *chan, void *data, int len, int samp
        f.datalen = samples * 2;
 #endif
        f.offset = AST_FRIENDLY_OFFSET;
-       f.mallocd = 0;
-       f.data = buf;
+       f.data = buf + AST_FRIENDLY_OFFSET;
        f.samples = samples;
        f.src = "app_sms";
        /* create a buffer containing the digital sms pattern */