Asterisk
zt_transcode_fopsA 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.
zt_init_tone_state
Used to initialize the tone state for DTMF tone generation. These initialized values are used in tone generation.
zt_dtmf_tone
For the current channel, returns the DTMF tone structure for the specified digit.
zt_register
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.
zt_unregister
Unregister spans registered using zt_register.
__zt_mulaw
ulaw conversion table.
__zt_alaw
alaw conversion table.
__zt_lineartoulaw
Function to convert linear samples to ulaw samples.
__zt_lineartoalaw
Function to convert linear samples to alaw samples.
__zt_lin2mu
Table for converting linear samples to ulaw samples
__zt_lin2a
Table for converting linear samples to alaw samples.
zt_lboname
Retrieve the LBO name strings from an array. LBO: Line build-out. Expressed in DBs. Decides the electrical length
zt_transmit
Transmit a chunk from the channel. There is more to it. Does some processing of slave channels etc. Need to see in detail.
zt_receive
Receives a chunk.Similar to zt_transmit. But it also handles in-band tones.
zt_rbsbits
Process robbed bit signaling. This is based on the channel signaling type.
zt_qevent_nolock
Queue an event for a channel. Do not lock the channel before doing it.
zt_qevent_lock
Queue an event for a channel. Lock the channel before queuing it.
zt_hooksig
Send hook status. (Off hook, on hook, ring etc)
zt_alarm_notify
Send an alarm to all channels in a span.
zt_set_dynamic_ioctl
Dynamically change the ioctl functions by passing a pointer to a new ioctl function.
zt_ec_chunk
Does echo cancellation on a chunk.
zt_ec_span
Does echo cancellation on an entire span.
zt_hdlc_abort
Send hdlc abort events to the channel.
zt_hdlc_finish
Read any remaining data from the channel.
zt_hdlc_getbuf
Copy data from the passed buffer to the output buffer.
zt_hdlc_putbuf
Copy data from the channel buffer to the passed buffer.
zt_alarm_channel
Send the alarm events to the channel.
zt_register_chardev
Register a character driver. Used by transcode module.
zt_unregister_chardev
Unregister the character device. Used by transcode module.
zt_dynamic_register
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.
zt_dynamic_unregister
Removes the driver from drivers linked list.
zt_dynamic_receive
Receive data for a channel. (Note: This and 3 functions above are for TDM over X. Currently X is ethernet)
zt_transcoder_register
List the transcoder in the global linked list 'trans'.
zt_transcoder_unregister
Remove the transcoder from the linked list pointed by trans
zt_transcoder_alert
Send an alert to the transcoder by setting an alert bit on transcoder status variable.
zt_transcoder_alloc
Allocate memory for a specified number of channels and initialize associated variables.
zt_transcoder_free
Free the memory allocated for a given transcoder.
Whats next?
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.
No comments:
Post a Comment