[asterisk-dev] possible bug in chan_vpb

john at spectross.com john at spectross.com
Sun Nov 23 22:25:08 CST 2008

Hi Russell,

Thanks, you are right, "chan_vpb.cc" also uses the same technique.

The monitor thread here checks for events over both owned & orphan channels 
& as an event is detected over an owned channel it creates a frame and 
queues it up by calling "ast_queue_frame()".

Could you please recommend some document which would aid in understanding 
the Asterisk Architecture(Developer's point of view). I found many E-books 
for Asterisk users but not one for fresh Asterisk developers.

Thanks & Regds.

John Nicholas
Team Lead
Spectross Digital Systems Pvt. Ltd.

----- Original Message ----- 
From: "Russell Bryant" <russell at digium.com>
To: <john at spectross.com>; "Asterisk Developers Mailing List" 
<asterisk-dev at lists.digium.com>
Sent: Sunday, November 23, 2008 4:45 AM
Subject: Re: [asterisk-dev] possible bug in chan_vpb

> On Nov 22, 2008, at 12:02 AM, <john at spectross.com>  <john at spectross.com> 
> wrote:
>> I was browsing through "chan_vpb.cc" today. I see that no  "fds" (file 
>> descriptors) are assigned while creation of an  "ast_channel" structure 
>> in "vpb_new".
>> What I am not able to understand is: How would the "ast_waitfor*" 
>> functions work as the events are captured using the "poll" api.
> I have never touched that code, but I can say that there is one other 
> method for a channel driver to indicate that data is available.   Channel 
> drivers can queue up media frames onto the channel using 
> ast_queue_frame().  This puts the frame into a queue on the  ast_channel, 
> and also writes data to an alert pipe on the channel that  is used to wake 
> up poll().  chan_iax2 uses this method quite heavily  since there is no 
> dedicated socket per channel like there is for a  call using RTP.
> --
> Russell Bryant
> Senior Software Engineer
> Open Source Team Lead
> Digium, Inc.

More information about the asterisk-dev mailing list