This MVP release provides a complete full-stack solution for managing action mappings in Geutebruck's GeViScope and GeViSoft video surveillance systems. ## Features ### Flutter Web Application (Port 8081) - Modern, responsive UI for managing action mappings - Action picker dialog with full parameter configuration - Support for both GSC (GeViScope) and G-Core server actions - Consistent UI for input and output actions with edit/delete capabilities - Real-time action mapping creation, editing, and deletion - Server categorization (GSC: prefix for GeViScope, G-Core: prefix for G-Core servers) ### FastAPI REST Backend (Port 8000) - RESTful API for action mapping CRUD operations - Action template service with comprehensive action catalog (247 actions) - Server management (G-Core and GeViScope servers) - Configuration tree reading and writing - JWT authentication with role-based access control - PostgreSQL database integration ### C# SDK Bridge (gRPC, Port 50051) - Native integration with GeViSoft SDK (GeViProcAPINET_4_0.dll) - Action mapping creation with correct binary format - Support for GSC and G-Core action types - Proper Camera parameter inclusion in action strings (fixes CrossSwitch bug) - Action ID lookup table with server-specific action IDs - Configuration reading/writing via SetupClient ## Bug Fixes - **CrossSwitch Bug**: GSC and G-Core actions now correctly display camera/PTZ head parameters in GeViSet - Action strings now include Camera parameter: `@ PanLeft (Comment: "", Camera: 101028)` - Proper filter flags and VideoInput=0 for action mappings - Correct action ID assignment (4198 for GSC, 9294 for G-Core PanLeft) ## Technical Stack - **Frontend**: Flutter Web, Dart, Dio HTTP client - **Backend**: Python FastAPI, PostgreSQL, Redis - **SDK Bridge**: C# .NET 8.0, gRPC, GeViSoft SDK - **Authentication**: JWT tokens - **Configuration**: GeViSoft .set files (binary format) ## Credentials - GeViSoft/GeViScope: username=sysadmin, password=masterkey - Default admin: username=admin, password=admin123 ## Deployment All services run on localhost: - Flutter Web: http://localhost:8081 - FastAPI: http://localhost:8000 - SDK Bridge gRPC: localhost:50051 - GeViServer: localhost (default port) Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
374 lines
18 KiB
HTML
374 lines
18 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="en" xml:lang="en" data-mc-search-type="Stem" data-mc-help-system-file-name="index.xml" data-mc-path-to-help-system="../" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
|
||
<!-- saved from url=(0014)about:internet -->
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Audio Back Channel (ABC) Plugin documentation</title>
|
||
<link href="Resources/TableStyles/Rows.css" rel="stylesheet" />
|
||
<link href="../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" />
|
||
<link href="../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" />
|
||
<link href="Resources/Stylesheets/Styles.css" rel="stylesheet" />
|
||
<script src="../Resources/Scripts/jquery.min.js">
|
||
</script>
|
||
<script src="../Resources/Scripts/plugins.min.js">
|
||
</script>
|
||
<script src="../Resources/Scripts/require.min.js">
|
||
</script>
|
||
<script src="../Resources/Scripts/require.config.js">
|
||
</script>
|
||
<script src="../Resources/Scripts/MadCapAll.js">
|
||
</script>
|
||
</head>
|
||
<body>
|
||
<h2><b>Audio Back Channel (ABC) Plugin documentation</b>
|
||
</h2>
|
||
<h3><b>1. Destination</b>
|
||
</h3>
|
||
<p>The ABC plugin may be used to create a uni/bidirectional (full duplex)
|
||
audio communication between different components of the GeViScope/re_porter
|
||
environment. Application scenarios are for example:</p>
|
||
<p> </p>
|
||
<ul>
|
||
<li value="1"> the uni/bidirectional
|
||
audio communication of a GSCView station with GeViScope devices. This may be
|
||
used for example for announcements from CCTV workstations to railway stations
|
||
where GeViScopes are installed (<b>announcement function</b>).
|
||
</li>
|
||
<li value="2">the uni/bidirectional audio communication between two GSCView
|
||
workstations (<b>audio chat function</b>)
|
||
</li>
|
||
<li value="3">(not) CCTV related audio broadcast function (for example shopping mall
|
||
announcements or even entertainment with recorded audio multimedia material) (<b>thin
|
||
audio client function</b>)
|
||
</li>
|
||
</ul>
|
||
<p> </p>
|
||
<p>The ABC function is not thought to replace professional Intercom
|
||
technology. Its principal transmission latency of about 500ms makes real
|
||
intercom applications inconvenient. It just represents a simple means to
|
||
transmit audio from a GSCView workstation to other devices which have the
|
||
necessary ABC plugin software installed. Nevertheless the architectural
|
||
approach of the feature allows quite flexible communication scenarios.
|
||
</p>
|
||
<h3><b>2. Communication architecture</b>
|
||
</h3>
|
||
<p>The ABC function is implemented as a GeViScope media plugin device. It
|
||
requires the availability of the ABC plugin on the system which is to output
|
||
the audio backchannel on its loudspeakers (<b>ABC output</b>). To access the
|
||
audio source a GSCServer must be installed on the system which represents the
|
||
input of the audio backchannel (<b>ABC source</b>). The audio device may be a
|
||
microphone or any other audio component which may be connected to the PC audio
|
||
input. This architectural approach allows different application scenarios which
|
||
are to be explained in the following paragraphs together with the necessary setup
|
||
parameters in both the ABC source and the ABC output.</p>
|
||
<p> </p>
|
||
<p>The ABC function is working completely independent of the DSP audio
|
||
inputs of GeViScope. It may be used even if GeViscope/re_porter is not using
|
||
its audio inputs (unidirectional audio for example for the announcement
|
||
function). In the following just the ABC function is explained. The common audio
|
||
functions of the GSC/re_porter system are not influenced and may be used as
|
||
accustomed.</p>
|
||
<h4><b>2.1. GSCView → GSC</b>
|
||
</h4>
|
||
<h5><b>2.1.1 General architecture</b>
|
||
</h5>
|
||
<p>
|
||
<img width="564" height="354" src="Images/210image005.jpg" class="padding600" />
|
||
</p>
|
||
<p>The image shows the basic communication architecture of ABC. In that
|
||
installation the function may be used to send audio from a microphone on the GSCView  workstationto either:</p>
|
||
<p> </p>
|
||
<p>1.     a fixed (but connected) GeViScope independently from the video
|
||
presentation
|
||
</p>
|
||
<p>2.     the GeViScope which has the video channel which is presented in the
|
||
active viewer of GSCView
|
||
</p>
|
||
<p>3.     all GeViScopes which are currently connected to GSCView (audio
|
||
broadcast)
|
||
</p>
|
||
<p> </p>
|
||
<p>The ABC behaviour 1,2 or 3 may be parametrized
|
||
in GSCView and is dependent on the setup for the ABC control buttons. ABC works
|
||
in the following way:</p>
|
||
<p> </p>
|
||
<ul>
|
||
<li value="1">The audio source for ABC is realized by a (virtual) GSCServer which must
|
||
be installed on the ABC source system.
|
||
</li>
|
||
<li value="2">This virtual server offers an audio media channel which may be accessed
|
||
remotely. The input microphone is connected to that media channel.
|
||
</li>
|
||
<li value="3">GSCView (or any other GSC action source - for example Multimap, GeViSoft
|
||
or GSCSDK based applications) transmits ABC Control Actions to the ABC output
|
||
system. These actions contain the IP address (or network name) of the ABC
|
||
source system.
|
||
</li>
|
||
<li value="4">The ABC actions are forwarded to the ABC plugin which must be installed
|
||
on the ABC output system.
|
||
</li>
|
||
<li value="5">The ABC plugin gets the IP address of the ABC source and connects to it
|
||
via the GSCDBI interface. Then it searches the ABC source for a audio channel which it is to output. If an audio source
|
||
channel was found the ABC plugin starts the audio transmission and feeds the
|
||
audio to the local loudspeaker output.
|
||
</li>
|
||
<li value="6"> If the ABC plugin gets an ABC_disconnect action or if it gets a new ABC_connect
|
||
action the old audio stream is closed and if necessary the new one is opened.
|
||
</li>
|
||
</ul>
|
||
<p> </p>
|
||
<p>To get that function running there is some setup work (GSCSetup ABC
|
||
source, GSCSsetup ABC output, Setup GSCView) necessary which is described in
|
||
the following instructions.
|
||
</p>
|
||
<h5><b>2.1.2 Installation step by step</b>
|
||
</h5>
|
||
<p>The following describes a step by step setup for the application
|
||
scenario of this paragraph. Based on that example the realization of other
|
||
types of applications (like an GSCView ↔ GSCView
|
||
intercommunication) should be simple.</p>
|
||
<p> </p>
|
||
<p><b>ABC source </b>
|
||
</p>
|
||
<p> </p>
|
||
<p>Before starting you should make sure that the system audio channel is
|
||
working at all and the microphone input is processed by Windows. A test with
|
||
the Windows audio recorder function shows that.</p>
|
||
<p> </p>
|
||
<p>a) (virtual) GSCServer setup</p>
|
||
<p> </p>
|
||
<ol style="margin-top: 0cm;list-style-type: decimal;" start="1">
|
||
<li value="1">Install
|
||
GSCServer on the ABC source system
|
||
</li>
|
||
<li value="2">Start GSCSetup
|
||
and connect to the GSCServer on the ABC source system.
|
||
</li>
|
||
<li value="3">Move to the
|
||
“Hardware” dialog.
|
||
</li>
|
||
<li value="4">Add a virtual
|
||
channel. For example you can use any IP camera type for that. It just
|
||
provides a placeholder for the ABC function.
|
||
</li>
|
||
<li value="5">Check
|
||
the “Use  system  audio” box in the  belonging “Hardware settings” dialog. This assigns the system audio input to that media
|
||
channel.
|
||
</li>
|
||
<li value="6">Save the setup
|
||
</li>
|
||
<li value="7">Move to the
|
||
“Media Channels” dialog.
|
||
</li>
|
||
<li value="8">Add the virtual
|
||
media channel to the list.
|
||
</li>
|
||
<li value="9">Change the name
|
||
of that channel to the default name for the ABC function
|
||
(AUDIOBACKCHANNEL)
|
||
</li>
|
||
<li value="10">Move to the live
|
||
streaming function dialog of that channel
|
||
</li>
|
||
<li value="11">Select “High”
|
||
for the “Audio profile” of the live stream.
|
||
</li>
|
||
</ol>
|
||
<p> </p>
|
||
<p>After that the source system offers a network audio channel.</p>
|
||
<p> </p>
|
||
<p>b) GSCView setup</p>
|
||
<p> </p>
|
||
<ol style="margin-top: 0cm;list-style-type: decimal;" start="1">
|
||
<li value="1">Open the GSCView
|
||
profile manager
|
||
</li>
|
||
<li value="2">Select the menu
|
||
“Custom buttons”
|
||
</li>
|
||
<li value="3">Create a custom
|
||
button
|
||
</li>
|
||
<ol style="margin-top: 0cm;list-style-type: lower-alpha;" start="1">
|
||
<li value="1">Caption  Speak
|
||
</li>
|
||
<li value="2">Action on mouse
|
||
down ABC_Connect(”ABC
|
||
source address”)
|
||
</li>
|
||
<li value="3">Action on mouse
|
||
up  ABC_Disconnect()
|
||
</li>
|
||
<li value="4">Send to Server
|
||
of selected viewer
|
||
</li>
|
||
</ol>
|
||
</ol>
|
||
<p> </p>
|
||
<p>ABC source address in the ABC_Connect actions represents the IP address
|
||
or network name of the ABC source system. If the button is pressed the “Action
|
||
on mouse down” is sent to the remote GSC. Its ABC plugin receives it and
|
||
connects to the IP address parameter of the ABC_Connect Attention: Do not mix
|
||
up the IP addresses of the ABC source and ABC output system. If
|
||
the button is released that action is as well transmitted to the remote GSC.It tells the ABC plugin to close the IP connection and henceforth to mute the
|
||
audio transmission.
|
||
</p>
|
||
<p> </p>
|
||
<p>If you would like to connect the ABC just to a fixed server you can
|
||
select it in the “Send to” option of the “Speak” button. This could perhaps be
|
||
necessary in an installation where multiple GSCs are remotely installed at the
|
||
same site but just one has a loudspeaker connected.</p>
|
||
<p> </p>
|
||
<p><b>ABC output</b>
|
||
</p>
|
||
<p> </p>
|
||
<p>On the GSC which is to output an ABC channel do the following:</p>
|
||
<p> </p>
|
||
<p>Before starting you should make sure that the system audio output is
|
||
working at all. Connect a loudspeaker and try to play an audio sample with the
|
||
media player.</p>
|
||
<p> </p>
|
||
<ol style="margin-top: 0cm;list-style-type: decimal;" start="1">
|
||
<li value="1">Copy the ABC
|
||
plugin (AudioBackChannel.dll) to the directory mediaplugins (in the
|
||
GEVISCOPE system folder).
|
||
</li>
|
||
<li value="2">Start GSCSetup
|
||
and connect to the GSCServer on the ABC output system
|
||
</li>
|
||
<li value="3">Move to the
|
||
“Hardware” dialog.
|
||
</li>
|
||
<li value="4">Open the menu
|
||
item “Add” in the context menu. Select “Add”. This shows a list of
|
||
available media plugins. Select the ABC plugin.
|
||
</li>
|
||
<li value="5">Save that setup
|
||
to the GeViScope. It is NOT necessary to setup a “Media channel” for that
|
||
plugin as it is accustomed for normal devices.
|
||
</li>
|
||
</ol>
|
||
<p> </p>
|
||
<p>That procedure must be done on each GSC which is to output audio from
|
||
the ABC source system.
|
||
</p>
|
||
<h5><b>2.1.3 Parameters of the ABC plugin</b>
|
||
</h5>
|
||
<p>In the hardware dialog of the ABC output system you may adjust some
|
||
parameters which control the behaviour of the audio backchannel:
|
||
</p>
|
||
<p class="MsoNormal" align="center" style="text-align: center;">
|
||
<img src="Images/210image001_600x372.jpg" class="padding600" style="width: 600;height: 372;" />
|
||
</p>
|
||
<table class="TableStyle_Rows" style="mc-table-style: url('Resources/TableStyles/Rows.css');" cellspacing="0">
|
||
<col style="width: 120px;" />
|
||
<col style="width: 480px;" />
|
||
<tbody>
|
||
<tr>
|
||
<td class="TableStyle_Rows_Body_0_0_RowSep_ColSep" style="font-weight: bold;">Default volume</td>
|
||
<td class="TableStyle_Rows_Body_0_0_RowSep_ColEnd">Defines the default loudness of the audio output</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="TableStyle_Rows_Body_1_0_RowSep_ColSep" style="font-weight: bold;">GSCChannel</td>
|
||
<td class="TableStyle_Rows_Body_1_0_RowSep_ColEnd">That is the name of the audio channel on the ABC source system. The default is
|
||
AUDIOBACKCHANNEL</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="TableStyle_Rows_Body_0_0_RowSep_ColSep" style="font-weight: bold;">GSC user name<br />GSC password<br /></td>
|
||
<td class="TableStyle_Rows_Body_0_0_RowSep_ColEnd">The connection between the ABC plugin and the ABC source server needs a normal
|
||
GSC account. The default is “sysadmin” “masterkey”. If you want to use another
|
||
account you can change it here. That account must be available in the setup of
|
||
the ABC source system</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="TableStyle_Rows_Body_1_0_RowEnd_ColSep" style="font-weight: bold;">Prebuffer latency<br />Runtime latency</td>
|
||
<td class="TableStyle_Rows_Body_1_0_RowEnd_ColEnd">These parameters influence the audio transmission latency. To have an audio
|
||
transmission without stream interruption a certain buffering is necessary. If
|
||
there are audio interruptions you may reduce them by increasing the latencies</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h5><b>2.1.4 ABC Actions</b>
|
||
</h5>
|
||
<p>ABC is controled by special ABC-actions. These actions may be created by
|
||
any software which interfaces either GeViScope or GeViSoft. This needs not to
|
||
be just GSCView but may be used in Multimap or SDK clients as well to control
|
||
the establishment of ABC audio connections. If for example Multimap is used to
|
||
control GSCView remotely you may add ABC control buttons to Multimap maps
|
||
instead of controling ABC from GSCView. You may even use MBEG or any other
|
||
hardware / software interface of GeViSoft to control the ABC function.</p>
|
||
<p> </p>
|
||
<p>ABC connections are controled by the following GSC actions:</p>
|
||
<p> </p>
|
||
<ul>
|
||
<li value="1">ABC_Connect(“ABC source address”)<br />Instructs the remote ABC plugin to connect to the audio channel auf the ABC source. A new ABC_Connect action overwrites the old connection.</li>
|
||
<li value="2">ABC_Disconnect()<br />Disconnects the ABC connection on that GSC where it is sent to.</li>
|
||
</ul>
|
||
<h3><b>3. ABC Extensions (07/2008)</b>
|
||
</h3>
|
||
<h4><b>3.1 Action controled playing of pre-recorded audio files</b>
|
||
</h4>
|
||
<ul>
|
||
<li value="1">May be used to play
|
||
audio files (WAV) controled by any action and action mapping in GSC
|
||
</li>
|
||
<li value="2">Alternative to the
|
||
direct speech between GSCView and GSC. May be used in GSCView as well
|
||
alternatively to the direct microphone connection. Has advantages in the
|
||
following situations:
|
||
</li>
|
||
</ul>
|
||
<p style="margin-left: 75px;">- Low bandwidth
|
||
connections between GSCView and GSC. The ABC live
|
||
channel needs a minimum of 128 kbit / second. Playing of predefined audio files
|
||
does not consume bandwidth
|
||
</p>
|
||
<p style="margin-left: 75px;">- the surveillance
|
||
staff has no possibility to misuse the live function or to make stupid audio comments
|
||
via live connections
|
||
</p>
|
||
<p style="margin-left: 75px;">- clearer understandable
|
||
speech if a predefined reaction is possible. Not dependend from the clarity of
|
||
speech of the guards.
|
||
</p>
|
||
<p style="margin-left: 75px;">- Possible to be
|
||
controled from Multiview with custom buttons which address different
|
||
announcements.
|
||
</p>
|
||
<ul>
|
||
<li value="1">May be used for lots
|
||
of other applications as well :
|
||
</li>
|
||
</ul>
|
||
<p style="margin-left: 75px;">- Audio error messages
|
||
on the GSC. All SystemError/Warning actions may be mapped to an audio message
|
||
</p>
|
||
<p style="margin-left: 75px;">- Automatically
|
||
produced audio messages for example by video sensor actions “You are
|
||
trespassing a forbidden zone …” <br /><br /></p>
|
||
<p>The control is done by the action:
|
||
</p>
|
||
<p> </p>
|
||
<p class="CODEetc">ABCPlayFile
|
||
</p>
|
||
<p> </p>
|
||
<p>with the parameters: </p>
|
||
<ul>
|
||
<li value="1">FileID – represents a
|
||
number of an audio file. The name is automatically created as
|
||
GSCSOUND_FileID.Wav. The ABC plugin searches for files with that name and plays
|
||
them.
|
||
</li>
|
||
<li value="2">FileName – represents
|
||
a name of an audio file. If that parameter is valid FileID is ignored
|
||
</li>
|
||
<li value="3">AutoRepeat – the
|
||
audio file is played in a loop
|
||
</li>
|
||
</ul>
|
||
<p> </p>
|
||
<p>The playback of audio files and file loops may be
|
||
interrupted with the ABC_Disconnect action. The audio files should reside in
|
||
the GSC home directory.<br /><br /></p>
|
||
</body>
|
||
</html> |