NeVoT Common Problems

Compilation

(SGI) Cannot find audio.h
Appears to be an installation problem. Is there an Irix package that contains the audio support?

Multicast support doesn't get compiled in
gcc defines its own version of netinet/in.h, without the multicast constants. This can be avoided by copying the multicast-extended netinet/in.h to
$HOME/$ARCH/include
or (possibly) updating to an newer version of gcc

ld: Undefined symbol _g721_decode
Most likely, you are not using the modified Sun audio library containing the G.721 and G.723 encoders, as contained in the Sun-specific library directory.

"./rtp.h", line xxx: warning: nonportable bit-field type
Bit-fields are by (ANSI) definition non-portable; ignore.

ansi_flush undefined
This occurs if some libraries were compiled with an ANSI C compiler while others were compiled using the /bin/cc compiler. Apply the following patch to tk/Makefile to determine which library needs recompiling with /bin/cc:
*** Makefile    Wed Aug 25 08:45:48 1993
--- Makefile.y  Wed Aug 25 08:48:27 1993
***************
*** 18,24 ****
  
  $(BINDIR)/nevot.tk: $(LIBDIR)/libgsm.a $(LIBDIR)/libnevot.a \
      $(LIBDIR)/libutil.a $(LIBGUIF) main.c
!       $(CC) main.c $(LDFLAGS) $(ARCH_CFLAGS) $(LDLIBS) -o $@
  
  audio.c: ../nevot/nevot.h ../include/par.h
        touch $@
--- 18,25 ----
  
  $(BINDIR)/nevot.xview: $(LIBDIR)/libgsm.a $(LIBDIR)/libnevot.a \
      $(LIBDIR)/libutil.a $(LIBGUIF) main.c
!       $(CC) main.c $(LDFLAGS) $(ARCH_CFLAGS) $(LDLIBS) -o $@ \
!     -y___ansi_flush
  
  audio.c: ../nevot/nevot.h ../include/par.h
        touch $@

General and Network-Related Problems

Segmentation violation - core dumped
This is (almost) always an indication of a NeVoT bug (exception see below). To fix the bug, it is helpful if you can use a debugger to get a stack trace. If the program core dumped in the routine TclBasic, it is likely due to not having used the option
-fwritable-strings
when compiling with gcc.

Segmentation violation in Tk_SetBackgroundFromBorder
Tk bug when color map is full. Clear color map and retry.

(Sun) ld.so: warning: libc.so.1.6 has older revision than expected 7''
This message can appear for any library, not just libc, as shown here. The dynamic loader could not find the expected revision number of a dynamically loaded library. This occurs if the program is installed on a system with an earlier operating system version than the one it was installed on, e.g., if the run-time kernel was SunOS 4.1.3, but the program was compiled on SunOS 4.1.1. This error message can be safely ignored.

(Sun) ld.so: libolgx.so.3: not found
This message typically occurs with X-related libraries, such as the example shown here. The loader cannot find the requested library. Check whether the environment library LD_LIBRARY_PATH is defined and either define it as the directory containing that library or add the directory containing the library to the value of the environment variable. This error is fatal.

(SGI) rld: Fatal Error: Cannot find soname XXX
Same cause as previous. Set the environment variable LD_LIBRARY_PATH to the directory containing the Tcl and Tk shared libraries.

No speakers displayed
Use netstat -M to check whether other sites are part of the multicast group. Check with ps -aux | fgrep mrouted whether the mrouted daemon is running. Make sure that the time-to-live field of audio packets is set appropriately high by all senders.

One site appears several times
This may occur if a remote site crashes and is restarted. One of the sites should time out after about a minute (depending on the configuration settings and number of session members) and appear in gray.

Host ... is invalid (illegal multicast, own address, ...).
This message is shown when trying to join an illegal address. Reasons include:
  1. joining a multicast group if NeVoT was compiled without multicast support
  2. specifying both a multicast address and a unicast address
  3. specifying the local host address
  4. specifying an invalid address (such as all zeros)
  5. the host name was not found

(SGI) debug timestamps increment in steps
By default, the clock resolution of the SGI workstations is 10 ms. The superuser can increase the resolution to 1 ms by the command ftimer -f on.

Multicast-Related Problems

Not compiled for multicast
On systems where multicast is not a standard part of the operating system, a multicast-modified file /usr/include/netinet/in.h must be used instead of the default one. You may, for example, put the multicast-modified header file in your ~/include directory.

UDP_connect:setsockopt(LOOP) (n): Invalid Argument
Occurs if NeVoT was compiled with multicast support, but the host or the kernel NeVoT is run on does not support IP multicast.

UDP_connect:setsockopt(ADD) (n): Cannot assign request address
This error occurs when trying to join a multicast group if the multicast kernel cannot find a default interface for multicast addresses. As a super-user, execute /usr/etc/route add 224.0.0.0 local 0, where local is replaced by the IP address of the local host. Also, you may want to run the mtest program included in the multicast distribution to check if you can join a group with all-zeroes for the interface, e.g., j 224.1.1.1 0.0.0.0.

This host/kernel does not support IP multicast.
Same problem as for previous item.

Warning: selective binding to multicast address not supported.
This message indicates that your kernel does not support binding a socket to a specific multicast address. This message is informational and does not indicate a problem. (Technical explanation: Newer versions of the multicast code for SunOS allow to bind to a specific multicast address rather than just INADDR_ANY. This makes it possible to have several conferences, distinguished by their multicast address, use the same port number.)

Audio Problems

Audio doesn't work
Try playing an audio file from within nevot after enabling 'monitor' in the 'play' panel. Make sure (for example, using gaintool or tkaudio) that the audio input and output devices are properly configured. On Sun workstations, try
  cat /usr/demo/SOUND/sounds/sample.au > /dev/audio
Also, on systems that support hardware monitoring (Sun, SGI), enable it to check if the audio input signal appears on the selected audio output.

Frequent record overflows
Same cause as previous problem. For slow displays, the display of overflow information (through a verbosity level of two or greater) may keep the system from catching up with the audio. Setting the verbosity to zero disables the poll signal handler on Sun systems and should be used for slow systems such as IPC, SLC, SPARCstation 1, etc.

G.721/G.723 distorted
Slower machines such as the Sun IPC or ILC may not be able to keep up with G.721 and G.723 encoding or decoding. Monitoring CPU utilization with the perfmeter program should give you a good indication of the resource utilization. Another indication of insufficient CPU cycles is a high audio underflow count despite having set the audio buffer size correctly.

Speakers displayed, but no sound
Also, both the session and site listen check-off should be marked on. If the eighth note of one or more of the sites is going on and off, audio data is being received. In that case, check local audio by playing a sound file while the sound file loopback option is checked in the set-up panel.

Abort with Could not open audio device
Most likely, some other application had already opened the audio device. Also occurs if the workstation does not have an audio device.

Wrong sampling rate
On Silicon Graphics workstations, the sampling rate setting currently has no effect if digital input has been selected. For an unconnected digital input, the sampling rate is 48 kHz.

Sampling rate conversion does not work
Yup. Donations of a good rate-conversion program are gratefully accepted. (The rate conversion routine within the Sox audio tool set, for example, suffers from aliasing, since no low-pass filtering is done.)

Non-zero 'bad audio' in vat statistics
This should only occur when sending GSM or LPC audio with multiple frames per packet to a vat host. Currently, vat does not handle packets that have fewer than the nominal number of frames per packet; NeVoT uses short packets at the end of a talkspurt.

SPARC-10 audio devices (line in, line out) do not work
This may occur if you compile with gcc 2.4.5 or earlier, since it uses an out-of-date sun/audioio.h header file. Use the system version,
/usr/include/sun/audioio.h. 
Excessive playout delay even within a local area network
This may be due to a number of factors. Enable both hardware audio monitoring (e.g., by raising the monitor level in tkaudio) and the software loopback within NeVoT. You should hear the audio twice, with some reverberation-type delay.

When reporting problems...

Please include the following information when reporting problems: It is helpful if you can reproduce the problem using the sample.au file from the Sun audio demo directory, usually /usr/demo/SOUND/sounds.

This is a beta release. Please send all bug reports and suggestions to the author at schulzrinne@fokus.gmd.de. New releases and bug fixed will be announced through the nevot mailing list. To be added to or dropped from this list, send mail to the author. Major releases will also appear on the rem-conf mailing list (to join the list, send a request to rem-conf-request@es.net). I would appreciate if you could let me know how you are using the software.