Add chan spy via OSS
This commit is contained in:
14
alsa.conf
14
alsa.conf
@@ -47,29 +47,27 @@ output_device=phoneOut
|
||||
;
|
||||
; If enabled, no audio capture device will be opened. This is useful on
|
||||
; systems where there will be no return audio path, such as overhead pagers.
|
||||
;noaudiocapture=true
|
||||
noaudiocapture=true
|
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||
jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||
; ALSA channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The ALSA channel can't accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive ALSA side will always
|
||||
; be used if the sending side can create jitter.
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP
|
||||
jbimpl = adaptive ; Jitterbuffer implementation, used on the receiving side of a SIP
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
|
||||
384
asound.state
Normal file
384
asound.state
Normal file
@@ -0,0 +1,384 @@
|
||||
state.Generic {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'IEC958 Playback Con Mask'
|
||||
value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access read
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'IEC958 Playback Pro Mask'
|
||||
value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access read
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'IEC958 Playback Default'
|
||||
value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||
comment {
|
||||
access 'read write'
|
||||
type IEC958
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface MIXER
|
||||
name 'IEC958 Playback Switch'
|
||||
value false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface CARD
|
||||
name 'HDMI Jack'
|
||||
value false
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.6 {
|
||||
iface PCM
|
||||
device 3
|
||||
name 'Playback Channel Map'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
}
|
||||
state.SB {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
name 'Line Out Playback Volume'
|
||||
value.0 64
|
||||
value.1 64
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 64'
|
||||
dbmin -6400
|
||||
dbmax 0
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.2 {
|
||||
iface MIXER
|
||||
name 'Line Out Playback Switch'
|
||||
value.0 true
|
||||
value.1 true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.3 {
|
||||
iface MIXER
|
||||
name 'Headphone Playback Volume'
|
||||
value.0 64
|
||||
value.1 64
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 64'
|
||||
dbmin -6400
|
||||
dbmax 0
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.4 {
|
||||
iface MIXER
|
||||
name 'Headphone Playback Switch'
|
||||
value.0 true
|
||||
value.1 true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.5 {
|
||||
iface MIXER
|
||||
name 'Speaker Playback Volume'
|
||||
value.0 64
|
||||
value.1 64
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 64'
|
||||
dbmin -6400
|
||||
dbmax 0
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.6 {
|
||||
iface MIXER
|
||||
name 'Speaker Playback Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.7 {
|
||||
iface MIXER
|
||||
name 'Auto-Mute Mode'
|
||||
value 'Line Out+Speaker'
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Disabled
|
||||
item.1 'Speaker Only'
|
||||
item.2 'Line Out+Speaker'
|
||||
}
|
||||
}
|
||||
control.8 {
|
||||
iface MIXER
|
||||
name 'Input Source'
|
||||
value Mic
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Mic
|
||||
item.1 Line
|
||||
}
|
||||
}
|
||||
control.9 {
|
||||
iface MIXER
|
||||
name 'Input Source'
|
||||
index 1
|
||||
value Mic
|
||||
comment {
|
||||
access 'read write'
|
||||
type ENUMERATED
|
||||
count 1
|
||||
item.0 Mic
|
||||
item.1 Line
|
||||
}
|
||||
}
|
||||
control.10 {
|
||||
iface MIXER
|
||||
name 'Capture Volume'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 31'
|
||||
dbmin -1650
|
||||
dbmax 3000
|
||||
dbvalue.0 -1650
|
||||
dbvalue.1 -1650
|
||||
}
|
||||
}
|
||||
control.11 {
|
||||
iface MIXER
|
||||
name 'Capture Switch'
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.12 {
|
||||
iface MIXER
|
||||
name 'Capture Volume'
|
||||
index 1
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 31'
|
||||
dbmin -1650
|
||||
dbmax 3000
|
||||
dbvalue.0 -1650
|
||||
dbvalue.1 -1650
|
||||
}
|
||||
}
|
||||
control.13 {
|
||||
iface MIXER
|
||||
name 'Capture Switch'
|
||||
index 1
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 2
|
||||
}
|
||||
}
|
||||
control.14 {
|
||||
iface MIXER
|
||||
name 'Mic Boost Volume'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 3'
|
||||
dbmin 0
|
||||
dbmax 3000
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.15 {
|
||||
iface MIXER
|
||||
name 'Line Boost Volume'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 3'
|
||||
dbmin 0
|
||||
dbmax 3000
|
||||
dbvalue.0 0
|
||||
dbvalue.1 0
|
||||
}
|
||||
}
|
||||
control.16 {
|
||||
iface MIXER
|
||||
name 'Master Playback Volume'
|
||||
value 57
|
||||
comment {
|
||||
access 'read write'
|
||||
type INTEGER
|
||||
count 1
|
||||
range '0 - 64'
|
||||
dbmin -6400
|
||||
dbmax 0
|
||||
dbvalue.0 -700
|
||||
}
|
||||
}
|
||||
control.17 {
|
||||
iface MIXER
|
||||
name 'Master Playback Switch'
|
||||
value true
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.18 {
|
||||
iface CARD
|
||||
name 'Mic Jack'
|
||||
value false
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.19 {
|
||||
iface CARD
|
||||
name 'Line Jack'
|
||||
value false
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.20 {
|
||||
iface CARD
|
||||
name 'Line Out Jack'
|
||||
value true
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.21 {
|
||||
iface CARD
|
||||
name 'Front Headphone Jack'
|
||||
value false
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.22 {
|
||||
iface CARD
|
||||
name 'Speaker Phantom Jack'
|
||||
value true
|
||||
comment {
|
||||
access read
|
||||
type BOOLEAN
|
||||
count 1
|
||||
}
|
||||
}
|
||||
control.23 {
|
||||
iface PCM
|
||||
name 'Playback Channel Map'
|
||||
value.0 3
|
||||
value.1 4
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
control.24 {
|
||||
iface PCM
|
||||
name 'Capture Channel Map'
|
||||
value.0 3
|
||||
value.1 4
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
control.25 {
|
||||
iface PCM
|
||||
device 2
|
||||
name 'Capture Channel Map'
|
||||
value.0 0
|
||||
value.1 0
|
||||
comment {
|
||||
access read
|
||||
type INTEGER
|
||||
count 2
|
||||
range '0 - 36'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -755,6 +755,8 @@ same => n,Set(FILE(/tmp/money.txt,,,al,u)=${money} ${CALLERID(num)})
|
||||
same => n,Playback(queue-thankyou)
|
||||
same => n,Set(QUEUE_PRIO=${money})
|
||||
same => n,Set(__AUCTION_BID=${money})
|
||||
same => n,Originate(Console/dsp,exten,auction-spy,s,1,,a)
|
||||
same => n,Set(SPYGROUP=10022)
|
||||
same => n,Queue(auction,tc)
|
||||
same => n,Dial(SIP/21,60,U(bidding-announce))
|
||||
same => n,Hangup()
|
||||
@@ -766,6 +768,10 @@ same => n,Goto(1)
|
||||
exten => bid-invalid,1,Playback(invalid)
|
||||
same => n,Goto(1,1)
|
||||
|
||||
[auction-spy]
|
||||
exten => s,1,Noop()
|
||||
same => n,ChanSpy(SIP/22,bq)
|
||||
|
||||
[bidding-announce]
|
||||
exten => s,1,Wait(1)
|
||||
same => n,Playback(is)
|
||||
|
||||
10
modules.conf
10
modules.conf
@@ -34,11 +34,15 @@ autoload=yes
|
||||
; Load one of: chan_oss, alsa, or console (portaudio).
|
||||
; By default, load chan_oss only (automatically).
|
||||
;
|
||||
load => chan_alsa.so
|
||||
noload => chan_oss.so
|
||||
noload => chan_alsa.so
|
||||
load => chan_oss.so
|
||||
noload => chan_console.so
|
||||
|
||||
noload => res_hep.so
|
||||
noload => res_hep_pjsip.so
|
||||
noload => res_hep_rtcp.so
|
||||
;
|
||||
|
||||
noload => res_timing_pthread.so
|
||||
noload => res_timing_timerfd.so
|
||||
noload => res_timing_kqueue.so
|
||||
load => res_timing_dahdi.so
|
||||
|
||||
152
oss.conf
Normal file
152
oss.conf
Normal file
@@ -0,0 +1,152 @@
|
||||
;
|
||||
; Automatically generated from ../channels/chan_oss.c
|
||||
;
|
||||
|
||||
[general]
|
||||
; General config options, with default values shown.
|
||||
; You should use one section per device, with [general] being used
|
||||
; for the first device and also as a template for other devices.
|
||||
;
|
||||
; All but 'debug' can go also in the device-specific sections.
|
||||
;
|
||||
; debug = 0x0 ; misc debug flags, default is 0
|
||||
|
||||
; Set the device to use for I/O
|
||||
device = /dev/dsp1
|
||||
|
||||
; Optional mixer command to run upon startup (e.g. to set
|
||||
; volume levels, mutes, etc.
|
||||
; mixer =
|
||||
|
||||
; Software mic volume booster (or attenuator), useful for sound
|
||||
; cards or microphones with poor sensitivity. The volume level
|
||||
; is in dB, ranging from -20.0 to +20.0
|
||||
; boost = n ; mic volume boost in dB
|
||||
|
||||
; Set the callerid for outgoing calls
|
||||
; callerid = John Doe <555-1234>
|
||||
|
||||
autoanswer = yes ; no autoanswer on call
|
||||
autohangup = yes ; hangup when other party closes
|
||||
; extension = s ; default extension to call
|
||||
; context = default ; default context for outgoing calls
|
||||
; language = "" ; default language
|
||||
|
||||
; If you set overridecontext to 'yes', then the whole dial string
|
||||
; will be interpreted as an extension, which is extremely useful
|
||||
; to dial SIP, IAX and other extensions which use the '@' character.
|
||||
; The default is 'no' just for backward compatibility, but the
|
||||
; suggestion is to change it.
|
||||
; overridecontext = no ; if 'no', the last @ will start the context
|
||||
; if 'yes' the whole string is an extension.
|
||||
|
||||
; low level device parameters in case you have problems with the
|
||||
; device driver on your operating system. You should not touch these
|
||||
; unless you know what you are doing.
|
||||
; queuesize = 10 ; frames in device driver
|
||||
; frags = 8 ; argument to SETFRAGMENT
|
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||
; OSS channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The OSS channel can't accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive OSS side will always
|
||||
; be used if the sending side can create jitter.
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of an OSS
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
; value plus 40 milliseconds. increasing this value may help if your
|
||||
; network normally has low jitter, but occasionally has spikes.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
; ----------------------------------------------------------------------------------
|
||||
|
||||
; below is an entry for a second console channel
|
||||
; [card1]
|
||||
; device = /dev/dsp1 ; alternate device
|
||||
|
||||
; Below are the settings to support video. You can include them
|
||||
; in your general configuration as [general](+,video)
|
||||
; The parameters are all available through the CLI as "console name value"
|
||||
; Section names used here are only examples.
|
||||
|
||||
[my_video](!) ; you can just include in your config
|
||||
videodevice = /dev/video0 ; uses your V4L webcam as video source
|
||||
videodevice = X11 ; X11 grabber. Dragging on the local display moves the origin.
|
||||
videocodec = h263 ; also h261, h263p, h264, mpeg4, ...
|
||||
|
||||
; video_size is the geometry used by the encoder.
|
||||
; Depending on the codec your choice is restricted.
|
||||
video_size = 352x288 ; the format WIDTHxHEIGHT is also ok
|
||||
video_size = cif ; sqcif, qcif, cif, qvga, vga, ...
|
||||
|
||||
; You can also set the geometry used for the camera, local display and remote display.
|
||||
; The local window is on the right, the remote window is on the left.
|
||||
; Right clicking with the mouse on a video window increases the size,
|
||||
; center-clicking reduces the size.
|
||||
camera_size = cif
|
||||
remote_size = cif
|
||||
local_size = qcif
|
||||
|
||||
bitrate = 60000 ; rate told to ffmpeg.
|
||||
fps = 5 ; frames per second from the source.
|
||||
; qmin = 3 ; quantizer value passed to the encoder.
|
||||
|
||||
; The keypad is made of an image (in any format supported by SDL_image)
|
||||
; and some configuration entries indicating the location and function of buttons.
|
||||
; These entries can also be contained in the comment field of the image,
|
||||
; which is a lot more convenient to manage.
|
||||
; E.g. for jpeg you can write them with wrjpgcom (part of libjpeg).
|
||||
; The format to define keys is
|
||||
; region = <event> <shape> x0 y0 x1 y1 h
|
||||
; where <event> is the event to be generated (a digit, pickup, hangup,...)
|
||||
; <shape> is the shape of the region (currently 'rect' and 'circle' are
|
||||
; supported, the latter is really an ellipse), x0 y0 x1 y1 are the
|
||||
; coordinates of the base of the rectangle or main diameter of the ellipse,
|
||||
; (they can be rotated) while h is the height of the rectangle or the other
|
||||
; diameter of the ellipse.
|
||||
;
|
||||
[my_skin](!)
|
||||
keypad = /tmp/keypad.jpg
|
||||
region = 1 rect 19 18 67 18 28
|
||||
region = 2 rect 84 18 133 18 28
|
||||
region = 3 rect 152 18 201 18 28
|
||||
region = 4 rect 19 60 67 60 28
|
||||
region = 5 rect 84 60 133 60 28
|
||||
region = 6 rect 152 60 201 60 28
|
||||
region = 7 rect 19 103 67 103 28
|
||||
region = 8 rect 84 103 133 103 28
|
||||
region = 9 rect 152 103 201 103 28
|
||||
region = * rect 19 146 67 146 28
|
||||
region = 0 rect 84 146 133 146 28
|
||||
region = # rect 152 146 201 146 28
|
||||
region = pickup rect 229 15 267 15 40
|
||||
region = hangup rect 230 66 270 64 40
|
||||
region = mute circle 232 141 264 141 33
|
||||
region = sendvideo circle 235 185 266 185 33
|
||||
region = autoanswer rect 228 212 275 212 50
|
||||
|
||||
; another skin with entries for the keypad and a small font
|
||||
; to write to the message boards in the skin.
|
||||
[skin2](!)
|
||||
keypad = /tmp/kpad2.jpg
|
||||
keypad_font = /tmp/font.png
|
||||
|
||||
; to add video support, uncomment this and remember to install
|
||||
; the keypad and keypad_font files to the right place
|
||||
; [general](+,my_video,skin2)
|
||||
Reference in New Issue
Block a user