Mercurial > hg > audiostuff
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 $* & +