[asterisk-dev] ast_read() wrong for calls initiated by Asterisk

Edwin Groothuis edwin at mavetju.org
Fri Feb 15 22:45:12 CST 2008


See http://bugs.digium.com/view.php?id=11917 (it only talks about
AGI scripts, but it's more generic, it also happens with the Read()
application in the dialplan)

The story so far:

- I have a call initiated by the Asterisk server with a call file.
  That works.

- During the call I will ask for a couple of digits.

The dialplan is as follow (just FYI, this all works)

    [context-tools]
    exten => 123,1,NoOp(Callback1)
    exten => 123,n,Answer()
    exten => 123,n,Read(foo,one-moment-please,3,,,10);
    exten => 123,n,SayDigits(${foo})
    exten => 123,n,AGI(callback1.agi)

    [context-callback]
    exten => _.X,1,NoOp(callback time)
    exten => _.X,n,Answer()
    exten => _.X,n,Read(foo,one-moment-please,3,n,,10);
    exten => _.X,n,SayDigits(${foo});
    exten => _.X,n,Hangup

Now the strange thing is the Read() on 123 does recognize the
DTMF keys, while the Read() in the callback does not recognized the
DTMF keys.

Going through some code I ended up at main/channel.c at the
ast_waitfordigit_full() function which did do a ast_read(). For the
Read() on 123, the ast_read now and then showed a AST_FRAME_DTMF_END.
But for the Read() in the callback it didn't show up.

At that moment I thought that this might be a left-right-channel issue:

Under normal circumstances, the user telephone (the originating
channel) calls the PABX. So the user data comes from originating
channel to the channel and the Read() function gets the data from
the originating channel.

But with call files, the user telephone is on the outgoing channel
and thus should the Read() function get the data from the outgoing
channel.


The question of course is.... Does this explanation make sense?

(Oh, and where is the link between the DialPlan and the call to the
Read() function? (Don't worry, I'll find it :-))


Edwin

-- 
Edwin Groothuis      |            Personal website: http://www.mavetju.org
edwin at mavetju.org    |              Weblog: http://www.mavetju.org/weblog/



More information about the asterisk-dev mailing list