old value instead of the old debug value, leading to an erroneous status message
after setting. This was purely a cosmetic issue and had no other underlying problems.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@67557 f38db490-d61c-443f-a65b-d21fe96a405b
pretty cool things.
First, you can get the device state of anything in the dialplan:
NoOp(SIP/mypeer has state ${DEVSTATE(SIP/mypeer)})
NoOp(The conference room 1234 has state ${DEVSTATE(MeetMe:1234)})
Most importantly, this allows you to create custom device states so you can
control phone lamps directly from the dialplan.
Set(DEVSTATE(Custom:mycustomlamp)=BUSY)
...
exten => mycustomlamp,hint,Custom:mycustomlamp
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@54261 f38db490-d61c-443f-a65b-d21fe96a405b
renaming them to ast_str ... and putting the
struct ast_threadstorage pointer into the struct ast_str.
This makes the code a lot more readable.
At this point we can use these routines also to
replace ast_build_string().
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@48510 f38db490-d61c-443f-a65b-d21fe96a405b
matching word (e.g. "sip<TAB>"); this is implemented by this one-line change
- for (;; dst++, src += n) {
+ for (;src < argindex; dst++, src += n) {
However this code is not exactly trivial to understand, so
i am also adding some comments to help figuring out what it does.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@48408 f38db490-d61c-443f-a65b-d21fe96a405b
without duplicating the macro or the code:
/*!
* In many cases we need to print singular or plural
* words depending on a count. This macro helps us e.g.
* printf("we have %d object%s", n, ESS(n));
*/
#define ESS(x) ((x) == 1 ? "" : "s")
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47827 f38db490-d61c-443f-a65b-d21fe96a405b
and add support for wildcard (spelled as '%').
On passing fix a bug in the expansion code which was hidden and
appeared when implementing the wildcard
The fix is just the line 'src != argindex', in case someone wants
to test this on 1.4 - but i would just keep this in trunk.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47813 f38db490-d61c-443f-a65b-d21fe96a405b
Now you can specify a cli command as
"console autoanswer [on|off]"
which means the on|off argument is optional, or
"console {mute|unmute}"
which means the mute|unmute argument is mandatory.
The blocks in [] or {} do not necessarily need to be at the
end of the string.
Completions for the variant parts are generated automatically.
This should significantly simplify the implementation of
the various handlers.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47787 f38db490-d61c-443f-a65b-d21fe96a405b
for CLI entriesC. The lock is not protecting this field.
I wonder if the field should be declared 'volatile' as well.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47731 f38db490-d61c-443f-a65b-d21fe96a405b
remove a cast from char* to int in handling the return
values from new-style handlers.
On passing, note that main/loader.c::ast_load_resource() always return 0
so errors are not propagated up. I am not sure this is the intended
behaviour.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47727 f38db490-d61c-443f-a65b-d21fe96a405b
Under FreeBSD, the filename_completion used in the above commands does
not work. Not sure why, but on passing i note that the function is
part of readline and is not reentrant, so it needs to be fixed one way
or another.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47664 f38db490-d61c-443f-a65b-d21fe96a405b
code for the deprecated handler.
On passing fix a long standing bug in find_cli() which would not
find the longest match - this part (trivial, basically
just update matchlen on a match) must go in 1.4 and possibly 1.2 as well.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47662 f38db490-d61c-443f-a65b-d21fe96a405b
the NEW_CLI macro now supports extra arguments (to deprecate other commands).
use this to implement unload and reload, and remove some unused functions.
usual completion fixes (as these function accept multiple arguments).
The summary is still a bit inconsistent.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47654 f38db490-d61c-443f-a65b-d21fe96a405b
This change basically simplifies the interface of the
new-style handler removing almost all the tricks used in
the previous implementation to achieve backward compatibility
(which is still present and guaranteed.)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47652 f38db490-d61c-443f-a65b-d21fe96a405b
(should do the same for the other similar commands, "reload", "module unload" and so on.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47620 f38db490-d61c-443f-a65b-d21fe96a405b
original one instead with appropriate changes in argc/argv.
This is not always applicable, but in some simple cases it is.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47614 f38db490-d61c-443f-a65b-d21fe96a405b
and fix the simple case where a command can have multiple completions,
the first ones coming from keywords in previous CLI entries.
There is no solution yet for the complex case of N1 completions
from a CLI entry, followed by N2 from the next one, and so on,
because the _complete() handlers do not tell us how many matches
it generates, so we don't know how many to skip when interrogating
the other handlers.
The only solution is to avoid, as much as possible, multiple
CLI entries with the same prefix.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47607 f38db490-d61c-443f-a65b-d21fe96a405b
WATCH OUT: this changes the binary interface (ABI) for modules,
so e.g. users of g729 codecs need a rebuilt module (but read below).
The new way to write CLI handlers is described in detail in cli.h,
and there are a few converted handlers in cli.c, look for NEW_CLI.
After converting a couple of commands i am convinced that
it is reasonably convenient to use, and it makes it easier to fix the
pending CLI issues.
On passing, note a bug with the current 'complete' architecture:
if a command is a prefix of multiple CLI entries, we miss some
of the possible options. As an example, "core set debug" can
continue with "channel" from one CLI entry, and "off" or "atleast"
from another one.
We address this problem in a separate commit
(when i have figured out a fix, that is).
ABI issues:
I asked Kevin if it was ok to make this change and he said yes.
While it would have been possible to make the change without breaking
the module ABI, the code would have been more convoluted.
I am happy to restore the old ABI (while still being able
to use the "new style" handlers) if there is demand.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47606 f38db490-d61c-443f-a65b-d21fe96a405b
there is no functional change, so it is not necessary to
bother merging this to 1.4 now.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47537 f38db490-d61c-443f-a65b-d21fe96a405b