summaryrefslogtreecommitdiffstats
path: root/chan_lcr.c
diff options
context:
space:
mode:
authorPeter Schlaile2008-10-25 18:44:31 +0200
committerroot2008-10-25 18:44:31 +0200
commit6c4b239a3a278a8e4aa1d5c6ac18d0894f997c44 (patch)
tree30fe9a25338b638797ecd5b2057fc3c88a79bd99 /chan_lcr.c
parentadded chan_lcr and Makefile.am fixes by Matthias (diff)
downloadlcr-6c4b239a3a278a8e4aa1d5c6ac18d0894f997c44.tar.gz
lcr-6c4b239a3a278a8e4aa1d5c6ac18d0894f997c44.tar.xz
lcr-6c4b239a3a278a8e4aa1d5c6ac18d0894f997c44.zip
chan_lcr: Fixed automagic 's' extension and made pickup work.
Last commit by Andreas changed matching semantics to make it possible to go directly into the dialplan _without_ dialing any digits by implicitly dialing the 's' extension. That is fine, if there is one to match :) If we do not find an implicit 's' extension, we will wait for more digits instead of hanging up immediately. (If you _really_ depended on that 'feature' please add s => { Hangup(); } :) Pickup: the pickup application can be used with PICKUPMARK to match a channel, that is in RINGING state. Unfortunately, one has to explicitly use ast_setstate() in addition to ast_queue_event() to convince asterisk to change the channel state... => Pickup works now.
Diffstat (limited to 'chan_lcr.c')
-rw-r--r--chan_lcr.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/chan_lcr.c b/chan_lcr.c
index cfd3c61..1cf4656 100644
--- a/chan_lcr.c
+++ b/chan_lcr.c
@@ -703,6 +703,12 @@ static void lcr_start_pbx(struct chan_call *call, struct ast_channel *ast, int c
return;
}
+ if (!*ast->exten) {
+ /* if can match */
+ CDEBUG(call, ast, "There is no 's' extension (and we tried to match it implicitly). Extensions may match, if more digits are dialed.\n");
+ return;
+ }
+
/* if not match */
cause = 1;
release:
@@ -1495,6 +1501,7 @@ static int queue_send(void)
case 'R':
CDEBUG(call, ast, "Sending queued RINGING to Asterisk.\n");
ast_queue_control(ast, AST_CONTROL_RINGING);
+ ast_setstate(ast, AST_STATE_RINGING);
break;
case 'A':
CDEBUG(call, ast, "Sending queued ANSWER to Asterisk.\n");