[asterisk-dev] Astreisk/DAHDI internals

Dimitar Penev dpn at switchvoice.com
Sat May 25 00:43:16 CDT 2013


Hi Guys,

I am working on a custom PRI PBX running Asterisk 1.4.44/ DAHDI 2.5.0.2+2.5.0.2.
I am tiring to optimize the performance a bit an din this respect I have spent some time investigating the structure and interfaces of the components
Asterisk <->chan_dahdi <-> DAHDI <-> hardware driver.
Most seems to be clear but still I have some doubts. What I think now.

- The hardware driver is registering PRI span with channels , capabilities and supporting functions. It calls dahdi_register().
   As a result DAHDI can call low level hardware functions
- The actual speech data are hooked up on the 1ms interrupt in the hardware driver 
  and calls to DAHDI functions dahdi_receive/dahdi_transmit is used to pass the speech chunks.
- chan_dahdi is registering few functions using ast_channel_register(). So Asterisk can call low level chan_dahdi functions.


What I am not very clear is the interface chan_dahdi <-> DAHDI (kernel <–> userspace).  
It seems DAHDI is exposing timing interface /dev/dahdi/pseudo but I am not sure if chan_dadhi is using it? 
What I think is that chan_dadhi is doing unblocking read on the file descriptor which DAHDI provides (for the speech data chunks)
and this is how the timings from the kernel space goes to the user space. 
Can someone shed some light on this please?

Thank you 
Dimitar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130525/78b5d549/attachment.htm>


More information about the asterisk-dev mailing list