[asterisk-dev] M9645: provide zaptel master timing to spans

Hans Petter Selasky hselasky at c2i.net
Wed May 2 10:41:52 MST 2007


On Wednesday 02 May 2007 18:23, Andrew Kohlsmith wrote:
> On Wednesday 02 May 2007 10:41 am, Tzafrir Cohen wrote:
> > > What do you think of expanding the patch to disable interrupts on
> > > subsequent cards?
> >
> > That approach helps for multiple cards that are driven by the same
> > driver. What about a system with two different card types?
>
> Why would it matter?  All zaptel cards do work on a 1ms interval.  The
> wct4xx driver does more than the wcfxo for sure, but the interrupt timing
> and structure is the same.
>
> I took a (very) quick look at wcfxo.c, wct1xxp.c and wct4xxp/base.c.  When
> you get an interrupt, couldn't you simply chain through their respective
> handlers?  I don't see any reason why not.
>
> > Also consider an mISDN card providing timing through the ztdummy
> > external timing patch:
> > http://bugs.digium.com/view.php?id=8896
>
> Yes, this appears to be a first-pass implementation of having Zaptel able
> to take interrupts from one place and using them.
>
> -A.

Just a comment: You should not interrupt at 1ms intervals.

For example:

The interrupt handler must respond within 1ms for transmission of data. This 
contradicts to block-processing of sound which might take more than 1ms.

The result is that Zaptel will not be able to do echo cancelling from the 
interrupt thread. Then Zaptel needs another thread that pre-computes the 
echo, which either adds more delay in the transmission path, or computes the 
estimated echo too often.

Zaptel is in other words not designed for efficiency.

If you don't know what a fast echo canceller looks like, have a look here:

http://www.turbocat.net/~hselasky/isdn4bsd/sources/new_ec/

--HPS


More information about the asterisk-dev mailing list