I have the same problem here.  The relevant part of
app_directed_pickup.c (function pickup_by_exten()) is :
                if (!strcasecmp(target->exten, exten) &&
                    !strcasecmp(target->dialcontext, context) &&
                    can_pickup(target)) {
                        res = pickup_do(chan, target);
                        ast_channel_unlock(target);
                        break;
                }

In case of a macro call, 'target->exten' won't match 'exten' (as
mentioned by Klaus), neither 'target->dialcontext' will match
'context'. And 'target->macroexten' or 'target->macrocontext' are not
set.

A bug report addresses a similar issue, although it does not
explicitly refers to macros : http://bugs.digium.com/view.php?id=8984

Philippe

On 2/15/07, Eric ManxPower Wieling <[EMAIL PROTECTED]> wrote:
Klaus Darilion wrote:
> Hi!
>
> I wanted to use Pickup() but it does not work if the ringing call is in
> a macro as the ringing call's exten is always 's'. Thus, I thought about
> extending app_directed_pickup to not only look for the extension to
> pickup in target->exten but also in target->macroexten. The problem is,
> that target->macroexten is not set for the called channel. Is this a bug?

[macro-happy-fun-ball]

exten => s,1,Goto(${MACRO_EXTEN},1)

exten => _X.,1,Noop(Start real macro here)
...
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev



--
Philippe Sultan
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to