A pointer to file operations structure. This is actually populated by zttranscode module. This is a pointer to __zt_transcode_fops defined by the zttranscode module. There is support for: open, release, ioctl, poll and mmap. This structure helps in transcoding.
Used to initialize the tone state for DTMF tone generation. These initialized values are used in tone generation.
For the current channel, returns the DTMF tone structure for the specified digit.
Registers a span with zaptel driver. This, I feel, is a method of registering a device with zaptel. The structure zt_span has all the components that is required for accessing/controlling the device. zt_span structure need to be studied in detail.
Unregister spans registered using zt_register.
ulaw conversion table.
alaw conversion table.
Function to convert linear samples to ulaw samples.
Function to convert linear samples to alaw samples.
Table for converting linear samples to ulaw samples
Table for converting linear samples to alaw samples.
Retrieve the LBO name strings from an array. LBO: Line build-out. Expressed in DBs. Decides the electrical length
Transmit a chunk from the channel. There is more to it. Does some processing of slave channels etc. Need to see in detail.
Receives a chunk.Similar to zt_transmit. But it also handles in-band tones.
Process robbed bit signaling. This is based on the channel signaling type.
Queue an event for a channel. Do not lock the channel before doing it.
Queue an event for a channel. Lock the channel before queuing it.
Send hook status. (Off hook, on hook, ring etc)
Send an alarm to all channels in a span.
Dynamically change the ioctl functions by passing a pointer to a new ioctl function.
Does echo cancellation on a chunk.
Does echo cancellation on an entire span.
Send hdlc abort events to the channel.
Read any remaining data from the channel.
Copy data from the passed buffer to the output buffer.
Copy data from the channel buffer to the passed buffer.
Send the alarm events to the channel.
Register a character driver. Used by transcode module.
Unregister the character device. Used by transcode module.
Takes a pointer to the driver structure and puts it on top of a linked list. The head of the linked list is a global variable called drivers.
Removes the driver from drivers linked list.
Receive data for a channel. (Note: This and 3 functions above are for TDM over X. Currently X is ethernet)
List the transcoder in the global linked list 'trans'.
Remove the transcoder from the linked list pointed by trans
Send an alert to the transcoder by setting an alert bit on transcoder status variable.
Allocate memory for a specified number of channels and initialize associated variables.
Free the memory allocated for a given transcoder.
a. Study the user space interaction of asterisk with zaptel (Chan_zap?)
b. Study the data flow in kernel
c. Study the working of a particular driver
I think, I will start with a & later move to b & c. In fact, it will be difficult to separate b & c.