dbri(7D)
NAME
dbri - Dual Basic Rate ISDN and audio Interface
DESCRIPTION
The dbri device uses the T5900FC Dual Basic Rate ISDN Inter-
face (DBRI) and Multimedia Codec chips to implement the
audio device interface. This interface is described fully in
the audio(7I) manual page.
Applications that open /dev/audio may use the AUDIO_GETDEV
ioctl to determine which audio device is being used. The
dbri driver will return the string "SUNW,dbri" in the name
field of the audio_device structure. The version field will
contain "e" and the config field will contain one of the
following values: "isdn_b" on an ISDN B channel stream,
"speakerbox" on a /dev/audio stream associated with a Speak-
erBox, and lastly "onboard1" on a /dev/audio stream associ-
ated with the onboard Multimedia Codec.
The AUDIO_SETINFO ioctl controls device configuration param-
eters. When an application modifies the record.buffer_size
field using the AUDIO_SETINFO ioctl, the driver will con-
strain it to be non-zero and a multiple of 16 bytes, up to a
maximum of 8176 bytes.
Audio Interfaces
The SpeakerBox audio peripheral is available for connection
to the SpeakerBox Interface (SBI) port of most dbri equipped
systems and provides an integral monaural speaker as well as
stereo line out, stereo line in, stereo headphone, and
monaural microphone connections. The headset output level is
adequate to power most headphones, but may be too low for
some external speakers. Powered speakers or an external
amplifier may be used with both the headphone and line out
ports.
SPARCstation LX systems have the Multimedia Codec integrated
onto the CPU board of the machine thus giving users the
option of using it or using a SpeakerBox plugged into the
AUI/Audio port on the back panel. When using the "onboard"
Codec, the microphone and headphone ports are located on the
system back panel - there are no Line In or Line Out ports
available for this configuration. In addition, the headphone
and microphone ports do not have the input detection circui-
try to determine whether or not there is currently head-
phones or a microphone plugged in. If a SpeakerBox is
plugged in when the machine is first rebooted and reconfig-
ured, or upon the first access of the audio device, it will
be used, otherwise the onboard Codec will be used.
The Sun Microphone is recommended for normal desktop audio
recording. When the Sun Microphone is used in conjunction
with the SpeakerBox, the microphone battery is bypassed.
Other audio sources may be recorded by connecting their line
output to the SpeakerBox line input (audio sources may also
be connected from their headphone output if the volume is
adjusted properly).
ISDN Interfaces
The DBRI controller offers two Basic Rate ISDN (BRI) inter-
faces. One is a BRI Terminal Equipment (TE) interface and
the other is a BRI Network Termination (NT) interface.
The NT connector is switched by a relay so that when system
power is not available or when software is not accessing the
NT port, the TE and NT connectors are electrically connected
and devices plugged into the NT port will be on the same BRI
passive bus.
Audio Data Formats for the Multimedia Codec/SpeakerBox
The dbri device supports the audio formats listed in the
following table. When the device is open for simultaneous
play and record, the input and output data formats must
match.
Supported Audio Data Formats
Sampe Rate Encoding Precision Channels
8000 Hz mu-law or A-law 8 1
9600 Hz mu-law or A-law 8 1
11025 Hz mu-law or A-law 8 1
16000 Hz mu-law or A-law 8 1
18900 Hz mu-law or A-law 8 1
22050 Hz mu-law or A-law 8 1
32000 Hz mu-law or A-law 8 1
37800 Hz mu-law or A-law 8 1
44100 Hz mu-law or A-law 8 1
48000 Hz mu-law or A-law 8 1
8000 Hz linear 16 1 or 2
9600 Hz linear 16 1 or 2
11025 Hz linear 16 1 or 2
16000 Hz linear 16 1 or 2
18900 Hz linear 16 1 or 2
22050 Hz linear 16 1 or 2
32000 Hz linear 16 1 or 2
37800 Hz linear 16 1 or 2
44100 Hz linear 16 1 or 2
48000 Hz linear 16 1 or 2
Audio Data Formats for BRI Interfeces
ISDN channels implement a subset of audio semantics. The
preferred ioctls for querying or setting the format of a BRI
channel are ISDN_GET_FORMAT, ISDN_SET_FORMAT, and
ISDN_SET_CHANNEL. In particular, there is no audio format
described in audio(7I) that covers HDLC or transparent data.
The dbri driver maps HDLC and transparent data to
AUDIO_ENCODING_NONE. ISDN D-channels are always configured
for HDLC encoding of data. The programmer should interpret
an encoding value of AUDIO_ENCODING_NONE as an indication
that the fd is not being used to transfer audio data.
B-channels can be configured for mu-law (as in the Greek
letter mu), A-law, or HDLC encoding of data. The mu-law and
A-law formats are always at 8000 Hz, 8-bit, mono. Although a
BRI H-channel is actually 16 bits wide at the physical layer
and the 16-bit sample occurs at 8 kHz, the HDLC encoding
always presents the data in 8-bit quantities. Therefore, 56
bit-per-second (bps), 64 bps, and 128 bps formats are all
presented to the programmer as 8-bit wide, mono,
AUDIO_ENCODING_NONE format streams at different sample
rates. A line rate of 56kbps results in a 8-bit sample rate
of 7000 Hz. If the bit stuffing and un-stuffing of HDLC were
taken into account, the data rate would be slightly less.
For the sake of compatibility, AUDIO_GETINFO will return one
of the following on a ISDN channel:
BRI Audio Data Formats
Sample Rate Encoding Precision Channels
8000 Hz mu-law or A-law 8 1
- AUDIO_ENCODING_NONE - -
ISDN_GET_FORMAT will return one of the following for an ISDN
channel:
BRI Audio Data Formats
Mode Sample Rate Encoding Precision # Ch Available on
HDLC 2000 Hz NONE 8 1 D
HDLC 7000 Hz NONE 8 1 B1,B2
HDLC 8000 Hz NONE 8 1 B1,B2
HDLC 16000 Hz NONE 8 1 B1,B2
TRANS 8000 Hz mu-law 8 1 B1,B2
TRANS 8000 Hz A-law 8 1 B1,B2
TRANS 8000 Hz NONE 8 1 B1,B2
TRANS 8000 Hz NONE 16 1 B1 only
In the previous table:
HDLC = ISDN_MODE_HDLC TRANS = ISDN_MODE_TRANSPARENT
Audio Ports
Audio ports are not relevant to ISDN D or B channels.
The record.avail_ports and play.avail_ports fields of the
audio_info structure report the available input and output
ports. The dbri device supports two input ports, selected by
setting the record.port field to either AUDIO_MICROPHONE or
AUDIO_LINE_IN. The play.port field may be set to any combi-
nation of AUDIO_SPEAKER, AUDIO_HEADPHONE, and AUDIO_LINE_OUT
by OR'ing the desired port names together. As noted above,
when using the onboard Multimedia Codec on the SPARCstation
LX, the Line In and Line Out ports are not available.
Sample Granularity
Since the dbri device manipulates buffers of audio data, at
any given time the reported input and output sample counts
will vary from the actual sample count by no more than the
size of the buffers it is transferring. Programs should, in
general, not rely on absolute accuracy of the play.samples
and record.samples fields of the audio_info structure.
Audio Status Change Notification
As described in audio(7I), it is possible to request asyn-
chronous notification of changes in the state of an audio
device. The DBRI driver extends this to the ISDN B chan-
nels by sending the signal up the data channel instead of
the control channel. Asynchronous notification of events on
a B-channel only occurs when the channel is in a transparent
data mode. When the channel is in HDLC mode, no such
notification will take place.
ERRORS
In addition to the errors described in audio(7I), an open()
will fail if:
ENODEV
The driver is unable to communicate with the Speaker-
Box, possibly because it is currently not plugged in.
FILES
The physical device names are very system dependent and are
rarely used by programmers. For example:
/devices/sbus@1,f8000000/SUNW,DBRIe@1,10000:te,b2.
The programmer should instead use the generic device names
listed below:
/dev/audio
symlink to the system's primary audio device, not
necessarily a dbri based audio device
/dev/audioctl
control device for the above audio device
/dev/sound/0*
represents the first audio device on the system and
is not necessarily based on dbri or SpeakerBox
/dev/sound/0
first audio device in the system
/dev/sound/0ctl
audio control for above device
/dev/isdn/0/*
represents the first ISDN device on the system and
any associated interfaces. This device is not neces-
sarily based on dbri.
/dev/isdn/0/te/mgt
TE management device
/dev/isdn/0/te/d
TE D channel
/dev/isdn/0/te/b1
TE B1 channel
/dev/isdn/0/te/b2
TE B2 channel
/dev/isdn/0/nt/mgt
NT management device
/dev/isdn/0/nt/d
NT D channel
/dev/isdn/0/nt/b1
NT B1 channel
/dev/isdn/0/nt/b2
NT B2 channel
/dev/isdn/0/aux/0
SpeakerBox or onboard Multimedia Codec
/dev/isdn/0/aux/0ctl
Control device for SpeakerBox or onboard Multimedia
Codec
/usr/share/audio
Audio files
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Architecture | SPARC |
|_____________________________|_____________________________|
The DBRI Multimedia Codec, and SpeakerBox are available on
SPARCstation 10 and LX systems.
SPARCstation 10SX and SPARCstation 20 systems have the Mul-
timedia Codec integrated onto the CPU board of the machine.
This hardware may or may not be available on future systems
from Sun Microsystems Computer Corporation.
There are new configurations for the SX10SX and Gypsy
machines. The SS10BSX looks like a speakerbox but does not
have auto-detection of the Headphone and Microphone ports.
The Gypsy claims to be "onboard" but does have line in and
line out ports.
SEE ALSO
ioctl(2), attributes(5), audio(7I), isdnio(7I), streamio(7I)
AT&T Microelectronics data sheet for the T5900FC Sun Dual
Basic Rate ISDN Interface.
Crystal Semiconductor, Inc., data sheet for the CS4215 16-
Bit, 48 kHz, Multimedia Audio Codec Publication number
DS76PP5.
NOTES
Due to hardware restrictions, it is impossible to reduce the
record gain to 0. A valid input signal is still received
at the lowest gain setting the Multimedia Codec allows. For
security reasons, the dbri driver disallows a record gain
value of 0. This is to provide feedback to the user that
such a setting is not possible and that a valid input sig-
nal is still being received. An attempt to set the record
gain to 0 will result in the lowest possible non-zero gain.
The audio_info structure will be updated with this value
when the AUDIO_SETINFO ioctl returns.
BUGS
When a DBRI channel associated with the SpeakerBox Interface
underruns, DBRI may not always repeat the last sample but
instead could repeat more than one sample. This behavior
can result in a tone being generated by an audio device con-
nected to the SBI port.
Monitor STREAMs connected to a B1 channel on either the TE
or NT interface do not work because of a DBRI hardware prob-
lem. The device driver disallows the creation of such moni-
tors.
Man(1) output converted with
man2html