[asterisk-dev] Asterisk Beginner learning about Channels
russell at russellbryant.net
Thu Aug 28 08:25:07 CDT 2014
On Wed, Aug 27, 2014 at 4:32 PM, Maiquel Breitenbach <
maiquel.breitenbach at gmail.com> wrote:
> I was already here asking about the building of new channel, I use as
> example chan_alsa, the new channel is work, the write function record a
> voice in file, but i am having problems with function read, asterisk
> doesn't call the read function, can someone explain how the asterisk works
> to call the read function of a channel?
> I appreciate very much your help.
Most channel drivers, including chan_alsa, set a file descriptor on the
channel that will be polled. When that fd indicates reading is possible,
the read() callback will be called. Search for ast_channel_set_fd() in
chan_alsa.c, for example.
It's also possible to do reading in your own way in another thread and
queue frames to the channel using ast_queue_frame(). chan_iax2 does this.
In that case, the read calback isn't used. chan_iax2 has to do it that
way as all data for *every* call is arriving on the same UDP socket, so it
can't put that one socket fd on every channel.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the asterisk-dev