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>