-if (@f == 0) {
- return (1, $self->msg('e6')) if ($self->priv < 5);
- my @calls = DXUser::get_all_calls();
+if (@f <= 2 && uc $f[0] eq 'ALL') {
+ return (1, $self->msg('e6')) if @f == 1 && $self->priv < 6;
+ return (1, $self->msg('e6')) if $self->priv < 5 || $f[1] eq '*';
+ shift @f;
+ my $exp = shellregex(uc shift @f) if @f;
+ my @calls;
+ if ($exp) {
+ @calls = grep {m{$exp}} DXUser::get_all_calls();
+ } else {
+ @calls = DXUser::get_all_calls();
+ }
+