<span style='font-family:Verdana'><span style='font-size:12px'><span style="font-family:Verdana"><span style="font-size:12px">Hello,</span></span><p style="margin:0px; padding:0px; margin:0px; padding:0px;"><span style="font-family:Verdana"><span style="font-size:12px"> </span></span></p><span style="font-family:Verdana"><span style="font-size:12px"> </span></span><p style="margin:0px; padding:0px; margin:0px; padding:0px;"><span style="font-family:Verdana"><span style="font-size:12px"><span style="font-family:Verdana"><span style="font-size:12px">I wanted to switch from using Dialogic/Eicon cards to using Digium's T-1 cards. When I purchased a sample card the salesperson assured me there was documentation specific to the DAHDI interface. Now that I'm digging in, I'm finding it's documented a lot like Linux -- one must read the fairly uncommented source code.<br /><br />I don't have a problem with this generally, but here I just don't understand the divisions of labor between Asterisk, DAHDI Hardware, DAHDI kernel modules and Userland (me). (BTW, I do not wish to use Asterisk as we have numerous projects based on Dialogic/Eicon spanning some 20 years. My intent is to write a replacement look-a-like driver which uses Digium's cards instead of Dialogic's.)<br /><br />My specific issues are:<br /><br /> 1) HDLC. Does the hardware have an HDLC controller, or is it the user's job to hunt for flags, frame the data and calc the FCS?<br /><br /> 2) ISDN/PRI. Does the kernel module load Q.921/931 implementation or is this user's responsibility? I know there's a LIBPRI product, which I may use, but I have my own PRI library which was confirmance tested with ATT years ago. Either way, I'm not sure how the D-channel data is flowing.<br /><br /> 3) I got the idea that B-channel data is collected by the kernel module in 8 sample blocks (1 ms). Does this mean I need to be reading it out/writing it in at that rate? I saw some buffering code, but wasn't sure if that was voicefile type playback/record or if all audio is treated without regard to its source/destination. I guess I could lock onto it at 1ms using Linux's HPET timer, although that sounds clumsy.<br /><br /> 4) I can certainly convert between ulaw/linear to sum for conferencing, but it seems the kernel module might support that as well? Or at the least it seems the kernel module can support chan-to-chan connections.<br /><br /> 5) I found some DTMF (FIR goertzel) code somewhere in DAHDI, but also in Asterisk. While I have such code in own library, am I to understand DTMF can be detected within the kernel module?<br /><br />I guess I really would like to see a doc on the overall concept of DAHDI hardware and its kernel module. I don't care how it's laid out, I'd just like to get my mind around it. Does anyone know of an example telephony C file that might show:<br /><br />1) initialization of DAHDI spans<br />2) waiting for inbound events<br />3) answering a call<br />4) sending a voice file, recording a voice file<br />5) disconnection of calls<br />6) de-initialization<br /><br />And perhaps showing how two channels are connected to create a conversation?<br /><br />Thanks in advance,<br />Gary</span></span></span></span></p></span></span>