[asterisk-dev] Help for developing a channel driver module
Matthew Jordan
mjordan at digium.com
Mon May 23 08:06:45 CDT 2016
On Mon, May 23, 2016 at 2:23 AM, Gilles Mazoyer
<mazoyer.gilles at omega.ovh> wrote:
> Hi
>
> Thank you for the information.
> That's what i already do so no need to change my module. Good !!!
>
Hi Gilles -
One other hopefully useful comment I could make is to follow the
models of the newer channel drivers, as opposed to some of the older
ones. Over time, the developer community has moved towards splitting
channel drivers up into components, as opposed to lumping all of the
functionality into a single monolithic file/module. This greatly aids
maintainability.
While it is somewhat an extreme example of this, the PJSIP channel
driver consists of:
- The channel driver (chan_pjsip), which acts as a bridge between the
Asterisk channel core and the rest of the protocol stack
- The basic protocol stack (res_pjsip), which interfaces with the
PJSIP library and provides major functionality for the SIP protocol
- Specific modules that build on aspects of the SIP protocol, such as
res_pjsip_session for requests the create media sessions,
res_pjsip_registrar for handling registrations, etc.
- And even more specific modules for very specific SIP features, such
as dialog info bodies
I'd encourage anyone writing a new channel driver to think of
splitting the functionality up into - at a minimum - separate files.
Keeping the Asterisk channel core integration separate from the
protocol handling itself generally keeps things a lot cleaner.
Hope this helps -
Matt
--
Matthew Jordan
Digium, Inc. | Director of Technology
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org
More information about the asterisk-dev
mailing list