[Asterisk-Dev] Anyone familiar with pri_dchannel in channels/chan_zap.c?

Chris Ziomkowski cziom at jsg.co.th
Tue Jul 8 12:37:40 MST 2003


Hi everyone.

I am trying to make R2 outbound dialing work with asterisk and an E400P 
card. After looking at the code it is clear this has never been done.

I have my protocol working in a test setup under the r2testcall.c file in 
the libr2 package, but I am now trying to make it run under asterisk.

I am trying to model the R2 setup after the way libpri has been designed. 
However, I am having a very difficult time understanding how PRI handles 
outbound calls.

Specifically, I am trying to figure out how the pri_dchannel thread 
interacts with the channel's owner threads in order to handle the PRI 
events such as call proceeding and answered.

Is this a good model for R2? If not, can someone suggest a better idea? Can 
you suggest an example in the source code? R2 is very similar to PRI in the 
code implementation that has been done so far, so it seems a natural fit, 
however it is unlike PRI in the sense that the signalling does not share a 
common channel, which makes hard to do a direct comparison.

I am really trying to understand the overall thread/scheduler model used by 
asterisk, but it is a rather large project and while I have found 
everything fairly well organized so far, I really have no idea what I 
should be looking for.

Can anyone who understands these aspects take a few minutes and explain to 
me the event model and scheduler interaction which is required when an 
outbound call occurs?

Example: ast_call launches a pthread which calls the underlying private 
routine. What are the responsibilities of this thread in terms of 
interacting with the larger system? How does this thread signal an answer 
to the larger system? What happens in the case of a protocol error or 
hangup? Where does this thread actually block waiting for the next event?

Thank you in advance for any assistance you can offer me. I really 
appreciate it. I apologize if my questions are vague. I am still trying to 
grasp the structure.

Chris Ziomkowski
cziom at jsg.co.th_NOSPAM




More information about the asterisk-dev mailing list