aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-01 16:14:28 +0000
committerrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-01 16:14:28 +0000
commitf2e96029e7679e982cd3db3fae9593c83989f9fa (patch)
tree7e705c38f27323b3a9c4692d103a563749f899e5 /doc
parent8d72879e33249fad78d581bef0a3eac6f18d0f7e (diff)
add documentation on video console support
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@126959 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'doc')
-rw-r--r--doc/video.txt1
-rw-r--r--doc/video_console.txt159
2 files changed, 160 insertions, 0 deletions
diff --git a/doc/video.txt b/doc/video.txt
index d7bd282f9..8db9cde22 100644
--- a/doc/video.txt
+++ b/doc/video.txt
@@ -29,6 +29,7 @@ SIP The SIP channel driver (chan_sip.so) has support for video
IAX2 Supports video calls (over trunks too)
Local Forwards video calls as a proxy channel
Agent Forwards video calls as a proxy channel
+oss Has support for video display/decoding, see video_console.txt
Applications
------------
diff --git a/doc/video_console.txt b/doc/video_console.txt
new file mode 100644
index 000000000..14ea0024a
--- /dev/null
+++ b/doc/video_console.txt
@@ -0,0 +1,159 @@
+ --- VIDEO CONSOLE SUPPORT IN ASTERISK ---
+
+Some console drivers (at the moment chan_oss.so) can be built with
+support for sending and receiving video. In order to have this
+working you need to perform the following steps:
+
++++ Enable building the video_console support +++
+
+ The simplest way to do it is add this one line to channels/Makefile:
+
+ chan_oss.so: ASTCFLAGS += -DHAVE_VIDEO_CONSOLE
+
++++ Install prerequisite packages +++
+
+ The video_console support relies on the presence of SDL, SDL_image
+ and ffmpeg libraries, and of course on the availability of X11
+
+ On Linux, these are supplied by
+
+ libncurses-dev,
+ libsdl1.2-dev, libsdl-image1.2-dev
+ libavcodec-dev, libswcale-dev
+
+ On FreeBSD, you need the following ports:
+
+ multimedia/ffmpeg (2007.10.04)
+ devel/sdl12 graphics/sdl_image
+
++++ Build and install asterisk with all the above +++
+
+ Make sure you do a 'make clean' and run configure again after you
+ have installed the required packages, to make sure that the required
+ pieces are found.
+ Check that chan_oss.so is generated and correctly installed.
+
++++ Update configuration files +++
+
+ Video support requires explicit configuration as described below:
+ == oss.conf ==
+ You need to set various parameters for video console, the easiest
+ way is to uncomment the following line in oss.conf by removing the
+ leading ';'
+
+ ;[general](+,my_video,skin2)
+
+ You also need to manually copy the two files
+
+ images/kpad2.jpg images/font.png
+
+ into the places specified in oss.conf, which in the sample are set to
+
+ keypad = /tmp/kpad2.jpg
+ keypad_font = /tmp/font.png
+
+ other configuration parameters are described in oss.conf.sample
+
+ == sip.conf ==
+ To actually run a call using SIP (the same probably applies to iax.conf)
+ you need to enable video support as following
+
+ [general](+)
+ videosupport=yes
+ allow=h263 ; this or other video formats
+ allow=h263p ; this or other video formats
+
+ you can add other video formats e.g. h261, h264, mpeg if they are
+ supported by your version of libavcodec.
+
+
++++ RUN THE PROGRAM +++
+
+ run asterisk in console mode e.g. asterisk -vdc
+
+ If video console support has been successfully compiled in, then
+ you will see the "console startgui" command available on the CLI`
+ interface. Run the command, and you should see a window like this:
+
+ http://info.iet.unipi.it/~luigi/asterisk_video_console.jpg
+
+ To exit from this window, in the console run "console stopgui".
+ If you want to start a video call, you need to configure your dialplan
+ so that you can reach (or be reachable) by a peer who can support video.
+ Once done, a video call is the same as an ordinary call:
+ "console dial ...", "console answer", "console hangup" all work the same.
+ To use the GUI, and also configure video sources, see the next section.
+
++++ VIDEO SOURCES +++
+
+ Video sources are declared with the "videodevice=..." lines in oss.conf
+ where the ... is the name of a device (e.g. /dev/video0 ...) or a
+ string starting with X11 which identifies one instance of an X11 grabber.
+ You can have up to 9 sources, displayed in thumbnails in the gui, and
+ select which one to transmit, possibly using Picture-in-Picture.
+
+ For webcams, the only control you have is the image size and frame
+ rate (which at the moment is the same for all video sources).
+ X11 grabbers capture a region of the X11 screen (it can contain
+ anything, even a live video) and use it as the source.
+ The position of the grab region can be configured using the GUI below
+ independently for each video source.
+
+ The actual video sent to the remote side is the device selected as
+ "primary" (with the mouse, see below), possibly with a small
+ 'Picture-in-Picture' of the "secondary" device (all selectable
+ with the mouse).
+
++++ GUI COMMANDS AND VIDEO SOURCES +++
+
+(most of the text below is taken from channels/console_gui.c)
+
+The GUI is made of 4 areas: remote video on the left, local video
+on the right, keypad with all controls and text windows in the
+center, and source device thumbnails on the top. The top row is
+not displayed if no devices are specified in the config file.
+
+ ________________________________________________________________
+ | ______ ______ ______ ______ ______ ______ ______ |
+ | | tn.1 | | tn.2 | | tn.3 | | tn.4 | | tn.5 | | tn.6 | | tn.7 | |
+ | |______| |______| |______| |______| |______| |______| |______| |
+ | ______ ______ ______ ______ ______ ______ ______ |
+ | |______| |______| |______| |______| |______| |______| |______| |
+ | _________________ __________________ _________________ |
+ | | | | | | | |
+ | | | | | | | |
+ | | | | | | | |
+ | | remote video | | | | local video | |
+ | | | | | | ______ | |
+ | | | | keypad | | | PIP || |
+ | | | | | | |______|| |
+ | |_________________| | | |_________________| |
+ | | | |
+ | | | |
+ | |__________________| |
+ |________________________________________________________________|
+
+
+The central section is built using an image (jpg, png, maybe gif too)
+for the skin and other GUI elements. Comments embedded in the image
+indicate to what function each area is mapped to.
+Another image (png with transparency) is used for the font.
+
+Mouse and keyboard events are detected on the whole surface, and
+handled differently according to their location:
+- center/right click on the local/remote window are used to resize
+ the corresponding window;
+- clicks on the thumbnail start/stop sources and select them as
+ primary or secondary video sources;
+- drag on the local video window are used to move the captured
+ area (in the case of X11 grabber) or the picture-in-picture position;
+- keystrokes on the keypad are mapped to the corresponding key;
+ keystrokes are used as keypad functions, or as text input
+ if we are in text-input mode.
+- drag on some keypad areas (sliders etc.) are mapped to the
+ corresponding functions (mute/unmute audio and video,
+ enable/disable Picture-in-Picture, freeze the incoming video,
+ dial numbers, pick up or hang up a call, ...)
+
+------------------------------------------------------------------------
+--- $Id $---