Problem with C4B on FreeBSD-Stable
Hans Petter Selasky
hselasky at c2i.net
Mon Jun 20 22:43:09 GMT 2005
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
More information about the freebsd-isdn
mailing list