# Copyright (C) 2000-2001 Open Source Telecom Corporation.
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
#
# The single most important piece of data to configure for Babylon is
# the "plugin" interface.  Plugins control what modules are loaded
# with the server.
#
[threads]
; specify relative thread priority of audio device processing thread(s).
audio = 0

; specify relative priority of rtp stack thread
rtp = 0

; specify base priority adjustment for phone process
priority = 0

; specify realtime scheduler policy, like rr, for example
policy = none

; specify stack frame size of new threads in k
stack = 8

[audio]
; specify audio device driver plugin interface
interface = oss

; specify audio resource(s) for play and record.  This can be one
; device or multiple devices for half-duplex sound cards.  Example
; is audio = /dev/audio1, /dev/audio2
device = /dev/audio

; specify default mike volume, in %
mike = 80

; specify default speaker volume, in %
speaker = 80

[rtp]
; specify network interface binding unicast address
interface = *

; specify network port number
port = 3128

; specify execution timeout interval in milliseconds
timer = 10

; specify packet timeout expiration in milliseconds
expire = 250
