DISCLAIMER
The insanity below works for me. You will still have to change it to make it fit your system.
I am not responsible for what you choose to do to your own box. You break it, you own both halves.
Any command or file you do not understand, LEARN before using or changing. Cut and paste Linux is a sure-fire recipe for disaster. And don't ask me for support. If it doesn't work, just live without it, figure out why yourself and write it down (like me), or ask the people that made all this undocumented stuff in the first place. Start by asking them how mere mortals are expected to cope?
SANITY CHECK
Before you begin, ask yourself... does all of the sound except SLVoice work? Are you willing to break things and possibly bork your sound into nonexistence forever and ever, amen? Yes?
Cue Gir: Are you sure? Really sure? Rilly rilly sure? LETS WRITE PYTHON!
Cue Zim: SQUEALING INSOLENT FOOLS, THIS is what you are UP AGAINST:

Thanks Manuel Amador Briz and Wikipedia for making it clear that it was a simple problem to solve.
This is a great image to illustrate how Linux is NOT ready for most Christmas users.
Especially, since you will THINK the problem is one of those pink connectors, when in reality, its not even on the chart...
REFERENCES
Read this first: http://alsa-project.org/main/index.php/Matrix:Main
Read this next: http://pulseaudio.org/wiki/PerfectSetup
GOALS
My ultimate configuration comes from my desire to meet certain goals:
1. I don't want to have to change the SL Viewer configuration every upgrade, because I will forget.
2. I want to match the Fedora design of routing to Pulse Audio preferentially.
3. I would rather keep customization in my home directory, to reduce to junk to remember to check every kernel or OS upgrade.
SUMMARY
The basic approach was to push everything at Pulse Audio, via ESD if needed, since that was Fedora's "design of the week". That got everything but SLVoice working, and finally resulted in my use of a USB headset as a second card. I was unable to get this working on a single card with built-in mic jack because I could not be bothered to figure out the write ALSA driver-level configuration to do that, under Pulse.
HARDWARE
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4000+
Audio Device: Second Life 1.20.6 (86925) May 6 2008 19:36:48 (Second Life Release Candidate)
OPERATING SYSTEM
OS Version: Linux 2.6.24.5-85.fc8 #1 SMP Sat Apr 19 11:18:09 EDT 2008 x86_64
RPMS
I have no idea what actual combination of software actually made it work. So, I threw every RPM I could at the problem until it went away. Yeah, that's always a good idea. It ain't pretty, but I don't care. I ended up with essentially this:
for rpms in alsa* pulse* gstreamer* esound* openal*
do
yum install $rpms
done
./etc/modprobe.conf (per the matrix at ALSA Project)
# ALSA
alias char-major-116 snd
options snd cards_limit=8
alias snd-card-0 snd-hda-intel
options snd-hda-intel index=0 model=6stack-hp
alias snd-card-7 snd-usb-audio
# OSS/Free
alias char-major-14 soundcore
# Card #0
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
# Card #7
alias sound-slot-7 snd-card-7
alias sound-service-7-0 snd-mixer-oss
alias sound-service-7-3 snd-pcm-oss
alias sound-service-7-12 snd-pcm-oss
/etc/asound.names # no idea if this matters, but the names file was interesting and looked like config
alsactl names -c1
/etc/asound.conf:
# all lines empty or commented
!!! Any use of the system-config-soundcard will put new DEFAULT definitions here that will bork up your entire day. Bad monkey !!!
/etc/alsa/pulse-default.conf
# leave me alone. Then sets ALSA to route to Pulse by default, which is what we want!
/etc/esd* and /etc/esound* do not exist for me.
/etc/openalrc
;; (define devices '(alsa))
;; (define alsa-in-device "dmixin"

;; (define alsa-out-device "dmixer"

Most Linux resources for Pulse Audio recommend all sorts of stuff here. This is the old LISP-style configuration. OpenAL doesn't use it anymore, and neither should you. Bad monkey!
alsamixer -c 1
# set your mic ON, and the mic volume UP some.
# If you get red waves flying out of your head in SLVoice, diddle with this some more.
HOME DIRECTORY
Lots of net resources recommend messing with things in your home directory too.
I ended up with:
~/.profile
# add this, SDL_AUDIODRIVER=pulse works here, too, but seemed to cause me pops and such.
export SDL_AUDIODRIVER=esd
~/.asoundrc
# Its all LIES! Nothing goes in here.
# Comment it all! DOOM!
~/.openalrc
;; Itth all LIETH! Nothing goeth in here either!
;; OpenAL LITHP fileth are deprecated!
;; SLVoice throwth errorth in thiplog.txt if you have one!
~/.pulse/
Don't go here. You just don't need to.
~/.alsoftrc
# OpenAL config file. Options that are not under a block or are under the
# [general] block are for general, non-backend-specific options. Blocks may
# appear multiple times, and duplicated options will take the last value
# specified.
# The system-wide settings can be put in /etc/openal/alsoft.conf and user-
# specific override settings in ~/.alsoftrc.
# Option and block names are case-insenstive. The supplied values are only
# hints and may not be honored (though generally it'll try to get as close as
# possible). These are the current available settings:
format = AL_FORMAT_STEREO16 # Sets the output format. Can be one of:
# AL_FORMAT_MONO8 (8-bit mono)
# AL_FORMAT_STEREO8 (8-bit stereo)
# AL_FORMAT_QUAD8 (8-bit 4-channel)
# AL_FORMAT_51CHN8 (8-bit 5.1 output)
# AL_FORMAT_61CHN8 (8-bit 6.1 output)
# AL_FORMAT_71CHN8 (8-bit 7.1 output)
# AL_FORMAT_MONO16 (16-bit mono)
# AL_FORMAT_STEREO16 (16-bit stereo)
# AL_FORMAT_QUAD16 (16-bit 4-channel)
# AL_FORMAT_51CHN16 (16-bit 5.1 output)
# AL_FORMAT_61CHN16 (16-bit 6.1 output)
# AL_FORMAT_71CHN16 (16-bit 7.1 output)
# Default is AL_FORMAT_STEREO16
cf_level = 0 # Sets the crossfeed level for stereo output. Valid values are:
# 0 - No crossfeed
# 1 - Low crossfeed
# 2 - Middle crossfeed
# 3 - High crossfeed (virtual speakers are closer to itself)
# 4 - Low easy crossfeed
# 5 - Middle easy crossfeed
# 6 - High easy crossfeed
# Default is 0. Users of headphones may want to try various
# settings. Has no effect on non-stereo modes.
frequency = 44100 # Sets the output frequency. Default is 44100
refresh = 8192 # Sets the buffer size, in frames. Default is 8192. Note that
# the actual granularity may or may not be less than this.
sources = 256 # Sets the maximum number of allocatable sources. Lower values
# may help for systems with apps that try to play more sounds
# than the CPU can handle. Default is 256
stereodup = yes # Sets whether to duplicate stereo sounds on the rear speakers f
or
# 4+ channel output. This can make stereo sources substantially
# louder than mono or even 4+ channel sources, but provides a
# "fuller" playback quality. True, yes, on, and non-0 values will
# duplicate stereo sources. 0 and anything else will cause stereo
# sounds to only play out the front speakers.
# Default is false
drivers = alsa,native,esd,null # Sets the backend driver list order, comma-seper
ated. Unknown
# backends and duplicated names are ignored, and unlisted backends
# won't be considered for use. An empty list means the default.
# Default is:
# alsa,oss,dsound,winmm,wave
[alsa] # ALSA backend stuff
device = hw:1,0 # Sets the device name for the default playback device.
# Default is default
periods = 0 # Sets the number of update buffers for playback. A value of 0
# means auto-select. Default is 0
capture = plughw:1,0 # Sets the device name for the default capture device.
# Default is default
mmap = true # Sets whether to try using mmap mode (helps reduce latencies and
# CPU consumption). If mmap isn't available, it will automatically
# fall back to non-mmap mode. True, yes, on, and non-0 values will
# attempt to use mmap. 0 and anything else will force mmap off.
# Default is true.
[oss] # OSS backend stuff
device = /dev/dsp # Sets the device name for OSS output. Default is /dev/dsp
periods = 4 # Sets the number of update buffers. Default is 4
capture = /dev/dsp # Sets the device name for OSS capture. Default is /dev/dsp
[dsound] # DirectSound backend stuff
# Nothing yet...
[winmm] # Windows Multimedia backend stuff
# Nothing yet...
[wave] # Wave File Writer stuff
file = # Sets the filename of the wave file to write to. An empty name
# prevents the backend from opening, even when explicitly requested.
# THIS WILL OVERWRITE EXISTING FILES WITHOUT QUESTION!
# Default is empty
This is what got it all working for me.
Of course, this new file is documented exactly where?
I had to get the source, crack it open, and find a sample and start there.
OB-RANT
UNIX has had a command (for decades) called man. LEARN IT! USE IT!
END-RANT
The key is to specify the devices for OpenAL to try, and configure OpenAL to go straight to the USB headset.
GNOME
Yes, I run GNOME. No, I am not anti-KDE, XFCE, Flux, whatever. What I am is pro-Solaris which is GNOME by default. Nyah.
As I mentioned above: DON'T RUN SYSTEM-CONFIG-SOUNDCARD.
However, in GNOME, I did run:
gstreamer-properties, aka "Multimedia Systems Selector", aka not found on a freaking menu already? mentioned cryptically on other sites without bothering to say what it is.
Default Output: Plugin PULSE
Default Input: Plugin PULSE
Both TESTS should WORK.
Also, in gnome-sound-properties, aka "Sound Preferences", aka System -> Prefences -> Hardware -> Sound,
Devices Tab:
Sound Events: Sound Playback: Pulse
Music and Movies: Sound Playback: Pulse
Audio Conferencing: Sound Playback: Pulse
Audio Conferencing: Sound Capture: Pulse
ALL of the tests should WORK without GStreamer errors.
Default Mix Tracks: Device: Pick whatever you care to see in the audio mixer.
Sounds Tab:
Turn ON the "Enable software sound mixing [ESD]" option
If you turn on "Play System Sounds", that will cause a load of extra, weird looking Esound connections to show up as clients in the Pulse Audio Manager. Just something I noticed.
I suggest installing all of the Pulse Audio GUI tools, like the Pulse Audio applet, aka the Pulse Audio Device Chooser, aka padev.
You also want the Manager, to set your USB mic as the default SOURCE.
The pavumeter, aka Volume Meter are helpful to verify software ears are working.
VIEWER
One goal: don't mess with this, so I didn't.
The secondlife script has all of the export sound lines COMMENTED, so the Viewer can try ESD, OSS, or ALSA. It all goes to Pulse now anyway.
The SLVoice configuration is "default" "default" as well. Just turn it on and go play.
RESULT
In-world sound effects, audio streams, and SL voice all work.
My OS even makes noises at the same time.
~/Library/Logs/Vivox/siplog.txt is blissfully silent about errors trying to open /dev files.
Everything goes through Pulse Audio except OpenAL, I guess.
This was a mess to get working at all.
Even so, SLVoice segfaults pretty often and restarts itself, or takes down the Viewer from lags.
But it works.
CREDITS AND THANKS
Thanks to the mighty cast of millions who made computers, UNIX, the Internet, Linux, SecondLife, and the Linux SL Viewer happen.
No thanks to intelvidia for their lack of Linux documentation for their sound chip.
No thanks to Linux for its complete and utter inability to write a man page.
No thanks to GNU for a dog's breakfast of freaky magic GNOME settings to find and futz with, all so lovingly undocumented.
No thanks to OpenAL for the complete inability to document their CHANGE of configuration files.
No thanks to Vivox for their utterly worthless website with its oodles of vaccuum that appears where you would HOPE some sort of technical information might be.
No thanks to L(tm)i(tm)n(tm)d(tm)e(tm)n(tm) L(tm)a(tm)b(tm)* for their lack of documentation on the correct ports or technical configuration or controls for SLVoice, like, oh, how it WORKS or anything. * I wanted to make sure I didn't mess up under the new policy here. And yes, there's a symbol and no I won't be bothered. ASCii4LyFE, BEEYATCH!
The Pink Fuzzy Bunny Mega-Thanks Award goes to Dr. Steel and FriskyRadio.com for the music to keep me sane long enough to get to the end of this nightmare. Too bad that sanity it didn't last through the end of this post. Maybe thats because THE FORUM ATE MY FIRST GIANT POST LIKE THIS DAYS AGO.
And finally, thanks to me for writing it all out.
Twice.
I am the awesome.
Even Strongbad says I am the awesome. Well, he really didn't, but he might.
Outta here.