]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge script <automerge@asterisk.org>
Thu, 23 Mar 2006 22:07:47 +0000 (22:07 +0000)
committerAutomerge script <automerge@asterisk.org>
Thu, 23 Mar 2006 22:07:47 +0000 (22:07 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@14566 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_zap.c
res/res_features.c

index e584a0a672fa53a4b21fd60ac5ed6c86b6eaeeb9..230465f0e3221ff0601984686b66991ec14a5657 100644 (file)
@@ -9031,15 +9031,19 @@ static void *pri_dchannel(void *vpri)
                                        ast_log(LOG_WARNING, "Received SETUP_ACKNOWLEDGE on unconfigured channel %d/%d span %d\n", 
                                                PRI_SPAN(e->setup_ack.channel), PRI_CHANNEL(e->setup_ack.channel), pri->span);
                                } else {
-                                       ast_mutex_lock(&pri->pvts[chanpos]->lock);
-                                       pri->pvts[chanpos]->setup_ack = 1;
-                                       /* Send any queued digits */
-                                       for (x=0;x<strlen(pri->pvts[chanpos]->dialdest);x++) {
-                                               ast_log(LOG_DEBUG, "Sending pending digit '%c'\n", pri->pvts[chanpos]->dialdest[x]);
-                                               pri_information(pri->pri, pri->pvts[chanpos]->call, 
-                                                       pri->pvts[chanpos]->dialdest[x]);
-                                       }
-                                       ast_mutex_unlock(&pri->pvts[chanpos]->lock);
+                                       chanpos = pri_fixup_principle(pri, chanpos, e->ring.call);
+                                       if (chanpos > -1) {
+                                               ast_mutex_lock(&pri->pvts[chanpos]->lock);
+                                               pri->pvts[chanpos]->setup_ack = 1;
+                                               /* Send any queued digits */
+                                               for (x=0;x<strlen(pri->pvts[chanpos]->dialdest);x++) {
+                                                       ast_log(LOG_DEBUG, "Sending pending digit '%c'\n", pri->pvts[chanpos]->dialdest[x]);
+                                                       pri_information(pri->pri, pri->pvts[chanpos]->call, 
+                                                               pri->pvts[chanpos]->dialdest[x]);
+                                               }
+                                               ast_mutex_unlock(&pri->pvts[chanpos]->lock);
+                                       } else
+                                               ast_log(LOG_WARNING, "Unable to move channel %d!\n", e->setup_ack.channel);
                                }
                                break;
                        case PRI_EVENT_NOTIFY:
index bf248b5f44f9cfe5b5025e4bb82f47ad5ab79a3e..131d695ee05368f9e1f2df185d1e1c7855a83a5d 100644 (file)
@@ -1144,6 +1144,9 @@ static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *call
                                                        ast_indicate(caller, AST_CONTROL_RINGING);
                                                } else if ((f->subclass == AST_CONTROL_BUSY) || (f->subclass == AST_CONTROL_CONGESTION)) {
                                                        state = f->subclass;
+                                                       if (option_verbose > 2)
+                                                               ast_verbose( VERBOSE_PREFIX_3 "%s is busy\n", chan->name);
+                                                       ast_indicate(caller, AST_CONTROL_BUSY);
                                                        ast_frfree(f);
                                                        f = NULL;
                                                        break;