Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2005 00:43:57 +0200
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-isdn@freebsd.org, twinterg@gmx.de
Subject:   Re: Problem with C4B on FreeBSD-Stable
Message-ID:  <200506210044.00616.hselasky@c2i.net>
In-Reply-To: <42B53878.2020407@nord-com.net>
References:  <7112CBFA-724E-4846-AA2E-1EFBC4B49CE2@cian.ws> <BD18D7E5-79CC-41B5-9755-6D31C5286CA9@cian.ws> <42B53878.2020407@nord-com.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 19 June 2005 11:18, Thomas Wintergerst wrote:
> Cian Hughes wrote:
> > on Hold, and concentrate on making a new patchset for FreeBSD-Current.
> > How hard do you think it would be to get c4b incorporated into
> > FreeBSD-Current, this patching lark is a bit of a pain.
>
> You are right. We are working on this topic. But during the current code
> freeze it will not be possible.

Another problem is that C4B does not support passive devices. 

The way CAPI is designed there cannot be more than one CAPI interface. So one 
CAPI interface for passive cards and one for active cards, is not going to 
work! The only solution I see is that one upgrades the I4B layer to support 
the features required, e.g. overlap-sending, and then puts a CAPI layer on 
top of that. If this is done right, not so many features are lost. And maybe 
there will be features provided by I4B that CAPI doesn't provide.

Overview:

ISDN PASSIVE                             CAPI: /dev/capi20 (pseudo device)
               
CAPI ACTIVE                              I4B: /dev/i4b (pseudo device)
             <--> I4B common layer <-->
SIP ?

VoIP ?


Implementation example:

/*---------------------------------------------------------------------------*
 *      send MSG_ALERT_IND message to userland
 *---------------------------------------------------------------------------*/
void
i4b_l4_alert_ind(call_desc_t *cd)
{
        struct mbuf *m;

        if(cd->interface == I4B || cd->interface == BROADCAST)
        {
          if((m = i4b_Dgetmbuf(sizeof(msg_alert_ind_t))) != NULL)
          {
                msg_alert_ind_t *mp = (void *)m->m_data;

                mp->header.type = MSG_ALERT_IND;
                mp->header.cdid = cd->cdid;

                i4bputqueue(m);
          }
        }
        if(cd->interface == CAPI || cd->interface == BROADCAST)
        {
            ...
            capiputqueue(...);
        }
        return;
}

Does anyone see that one can easily generate multiple telephony API's just by 
adding a few lines of code to some files in "/sys/i4b/layer4"?


It maybe is a little off topic, but I4B is not dead. Even though much 
telephony is changing over to SIP, people shouldn't be fooled into writing 
dedicated applications for SIP. The missing link is a SIP driver that can 
speak I4B and CAPI. So has anyone been thinking about that?


--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506210044.00616.hselasky>