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.
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:
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");