diff intercom/intercom @ 2:13be24d74cd2

import intercom-0.4.1
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Fri, 25 Jun 2010 09:57:52 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/intercom/intercom	Fri Jun 25 09:57:52 2010 +0200
@@ -0,0 +1,125 @@
+#!/bin/bash
+
+# intercom
+#
+# Copyright (C) DFS Deutsche Flugsicherung (2004, 2005). 
+# All Rights Reserved.
+# Author: Andre Adrian
+#
+# Voice-over-IP Intercom start skript for Linux with ALSA and OSS
+#
+# Version 0.4
+#
+
+echo "usage: intercom [OPTIONS] [Partner1-IP [Partner2-IP ...]]"
+echo " -a value   set ambient (background) noise to value decibel"
+# echo " -b value   set Acoustic Echo Suppression to value decibel"
+echo " -e         enable 2040Hz Sinustone for VHF transmitter"
+echo " -f Number  Number of 20ms Frames in RTP packet"
+echo " -k         use Packet Loss Concealment (PLC)"
+echo " -l         use hardware AEC and Line-in for microphone"
+echo " -m         use hardware AEC and Mic-in for microphone"
+echo " -p Number  RTP Portnumber (default is 5004)"
+echo " -t         Telephone conference (everybody with everybody else)"
+echo " -s Percent simulated packet loss"
+echo " -w         visualize vector w"
+echo " -I         use iLBC codec (default), can do PLC"
+echo " -A         use G.711 A-law codec"
+echo " -U         use G.711 u-law codec"
+echo " -6         use G.726 32kbps codec"
+echo " -G         use GSM codec"
+echo " -S         use Wideband Speex codec, can do PLC"
+
+# disable screen saver
+xset s off
+xset -dpms
+
+# delete old process
+killall -9 intercomd 2>/dev/null
+killall -9 intercomd1 2>/dev/null
+
+# configure audio mixer (AC97 compatible)
+# check your mixer hardware with:
+# 	cat /dev/sndstat
+#
+# hardware AEC test was successful with on-board sound mixers:
+# Analog Devices AD1985, ICEnsemble ICE1232, Realtek ALC650 and ALC655, 
+# SigmaTel STAC9750/51
+#
+# hardware AEC test was successful with PCI sound cards:
+# Soundblaster PCI128
+#
+# hardware AEC test failed with PCI sound cards:
+# Soundblaster Audigy 2, C-Media 8738
+
+# set playback volume
+amixer -q sset 'PCM',0 70%
+amixer -q sset 'Master',0 70%
+
+# use only PCM for playback
+amixer -q set 'Master',0 unmute
+amixer -q set 'PCM',0 unmute
+amixer -q set 'Mic',0 mute
+amixer -q set 'Line',0 mute
+amixer -q set 'CD',0 mute
+amixer -q set 'Aux',0 mute
+
+# enable recording
+amixer -q cset iface=MIXER,name='Capture Switch' 1
+EXEC=intercomd
+WOPTION=320
+WSTART=0
+
+# handle all options
+for argv in $* ;do
+  # echo $argv
+  case $argv in
+  ("-l")
+    # for Hardware AEC and Line-In Capture
+    amixer -q set 'Capture',0 0%-,100%-
+    amixer -q cset iface=MIXER,name='Capture Source' 4,5
+  ;;
+  ("-m")
+    # for Hardware AEC and Mic-In Capture
+    amixer -q set 'Capture',0 0%-,100%-
+    amixer -q cset iface=MIXER,name='Capture Source' 0,5
+  ;;
+  ("-9")
+    # other EXEC because of EFR G.729 link mismatch (same functionnames)
+    EXEC=intercomd2
+  ;;
+  ("-S")
+    # other EXEC because Speex is Wideband codec
+    EXEC=intercomd1
+    WOPTION=640
+  ;;
+  ("-w")
+    # start wdisplay.tcl
+    WSTART=1
+  ;;
+  esac
+done
+
+# start wdisplay
+if test $WSTART -eq 1 ;then
+  /usr/local/bin/wdisplay.tcl $WOPTION &
+  sleep 1
+fi
+
+# start audio/network daemon
+/usr/local/bin/$EXEC $* &
+sleep 1
+
+# give audio/network daemon realtime process prio
+# enable this if you don't use hardware AEC
+# (setpriority is in RPM package rtstools)
+# sudo /usr/sbin/setpriority `pidof $EXEC` fifo 1
+
+# To make sudo work without password add as superuser with the program 
+# visudo:
+# %users ALL=(root) NOPASSWD: /usr/sbin/setpriority
+
+# start graphical user interface
+# /usr/local/bin/intercom.tcl $* -geometry 800x600 &
+/usr/local/bin/intercom.tcl $* &
+

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.