dx_rec and dx_play on the same channel

From: General Listmanager <General.listmanager@pysdiscussext.py.intel.com>
Date: Mon Jun 27 2005 - 21:39:38 EDT

From: Thomas Fejes

Hi Dave,

Timeslots can be very confusing. Here are some clarifications.

CTBus is the successor to the SCbus on newer Intel Dialogic hardware (the "CT" in D/240JCT-T1 and D/41JCT-LS means that these cards have a CTBus -- also, all DM3 boards have a CTBus).

For most purposes, the primary difference to be aware of between the two busses is the number of timeslots (CTbus supports 4096 while SCbus only supports 1024).

While the documentation refers to SCbus routing, it applies equally to CTBus routing.

There are a couple of other terms you might encounter: H.100 and H.110. H.100 is the implementation of the CTBus on PCI boards and H.110 is its implementation on cPCI (CompactPCI) boards. Intel offers many of their DM3 boards in both PCI and cPCI form-factor. cPCI is a form-factor used by high-end (telco-grade) systems that require hot-swappable boards (see http://download.intel.com/network/csp/pdf/7475ds.pdf for a picture of what a cPCI board looks like if you haven't seen one before).

Important SCbus/CTBus routing rules:
1) Transmit (tx) timeslots of Dialogic devices (dx, ag, dt, etc) are fixed at board initialization time (i.e. start of boards in DCM). To determine what transmit timeslot has been assigned to a Dialogic device, use the appropriate xx_getxmitslot function.
2) Receive (rx or listen) timeslots of Dialogic devices can be controlled during runtime with xx_listen functions.
3) A device can listen to only one transmit timeslot at a time. Exception: a dx device when calling dx_mreciottdata can listen to 2 timeslots (dx_mreciottdata is used to implement transaction recording -- i.e. recording from two timeslots simultaneously creating a single recording containing a mix of the two timeslots).
4) Multiple devices can listen to the same transmit timeslot (i.e. one device can be listened to by multiple devices).

CTBus/SCbus routing is definitely required when you need to connect devices on different boards to each other (you also need to have a CTBus/SCbus cable between the boards).

However, CTBus/SCbus routing is also required when you need to connect different devices on the same board. This is the case in your application where you need to connect one VOX (dx) device full-duplex to your network device (dt for D/240JCT-T1 or ag for D/41JCT-LS). You also need to connect another VOX device half-duplex (listen) to the network device.

In your application, there should only be _one_ network device (the one making the outbound call to the conference) and, assuming the non-CSP version, two VOX devices (one for recording and one for playing). In the case of T1, you should only need to do _one_ gc_OpenEx and two dx_open calls. In the case of analog, you only need to do two dx_open calls. Recall that with analog boards, the handle you get back from dx_open is for both a VOX device and an AG (LSI) device.

Whatever device listens to the transmit timeslot of the network device will hear the audio that the far-end is saying (in your case, the output of the conference). Thus, you'll need to have one VOX device listen to your network device to record it.

Whatever device listens to the transmit timeslot of a VOX device will hear whatever the VOX device is playing. So, in your case, you'll need to have the network device listen to the VOX device that will be doing the playing.

For the CSP version of your application, if you haven't already, you might want to have a look at the CSP demo programs that are in the ...\Dialogic\sample\sp directory (e.g. CSPCONDEMO).

With CSP, a safe bet is to call both ec_stream and dx_playiottdata with exactly the same format:
xpb.wFileFormat = FILE_FORMAT_VOX;
xpb.wDataFormat = DATA_FORMAT_MULAW;
xpb.nSamplesPerSec = DRT_8KHZ;
xpb.wBitsPerSample = 8;

As for only receiving 2 or 3 ec_stream callbacks, make sure that you have no IOTT terminations defined that might be prematurely terminating the ec_stream. Also, you probably should disable VAD and barge-in (see the CSP documentation and the CSP demo code).

Hope this helps.

-Tom

To reply: mailto:General.30744@pysdiscussext.py.intel.com
To start a new topic: mailto:General@pysdiscussext.py.intel.com
To login: http://membersresource.intel.com/webboardnet/wb.aspx?board=general
Received on Mon Jun 27 20:51:57 2005

This archive was generated by hypermail 2.1.8 : Sat Jul 16 2005 - 03:48:35 EDT