Discussion:
line interconnect
(too old to reply)
jens meinerseitz
2005-11-10 20:52:23 UTC
Permalink
hallo,

wie komme ich denn nach einem erfolgreichen line interconnect an die
datab3 nachrichten (beispielsweise um diese aufzuzeichnen)?

mfg
j.
Danilo Kempf
2005-11-11 15:49:22 UTC
Permalink
Post by jens meinerseitz
hallo,
wie komme ich denn nach einem erfolgreichen line interconnect an die
datab3 nachrichten (beispielsweise um diese aufzuzeichnen)?
mfg
j.
Hallo,

zunächst befindet sich diese Gruppe außerhalb der de.*-Hierarchie, deshalb
ist die Amtssprache eigentlich Englisch -- da dürfte man dann auch
legitimerweise auf (nahezu) vollständige Kleinschreibung zurückgreifen.

An die DATA_B3_INDs kommst Du auch nach einem Line Interconnect mit
CAPI_GET_MESSAGE (oder dessen für Deine Plattform relevantem Äquivalent).
Der Schlüssel zum Erfolg ist in der derzeit auf http://www.capi.org zu
findenden 4th Edition der CAPI auf Seite 101 verzeichnet:

Im "LI Request Parameter" wären (gesetzt den Fall, Dein Wunsch ist es, für
den PLCI aus dem main-part DATA_B3_INDs zu erhalten) folgende Bits zu
setzen:

- Bit Nr. 2 (Enable monitoring of channel data for PLCI in main-part of
FACILITY_REQ)
-> dann bekommst Du die Audiodaten, die vom Netz kommen
- Bit Nr. 4 (Enable monitoring of channel data of all PLCIs interconnected
to PLCI in main-part of FACILITY_REQ)
-> dann bekommst Du die Audiodaten aus dem Line-Interconnect

Sind beide Bits gesetzt, werden die Audiosignale gemischt.

Falls Du auch noch DATA_B3_REQs abschicken willst, wären die Bits Nr. 3 und
5 zu setzen.

Grüße,

Danilo Kempf
jens meinerseitz
2005-11-12 12:28:21 UTC
Permalink
Post by Danilo Kempf
Post by jens meinerseitz
hallo,
wie komme ich denn nach einem erfolgreichen line interconnect an die
datab3 nachrichten (beispielsweise um diese aufzuzeichnen)?
mfg
j.
Hallo,
zunächst befindet sich diese Gruppe außerhalb der de.*-Hierarchie, deshalb
ist die Amtssprache eigentlich Englisch -- da dürfte man dann auch
legitimerweise auf (nahezu) vollständige Kleinschreibung zurückgreifen.
An die DATA_B3_INDs kommst Du auch nach einem Line Interconnect mit
CAPI_GET_MESSAGE (oder dessen für Deine Plattform relevantem Äquivalent).
Der Schlüssel zum Erfolg ist in der derzeit auf http://www.capi.org zu
Im "LI Request Parameter" wären (gesetzt den Fall, Dein Wunsch ist es, für
den PLCI aus dem main-part DATA_B3_INDs zu erhalten) folgende Bits zu
- Bit Nr. 2 (Enable monitoring of channel data for PLCI in main-part of
FACILITY_REQ)
-> dann bekommst Du die Audiodaten, die vom Netz kommen
- Bit Nr. 4 (Enable monitoring of channel data of all PLCIs interconnected
to PLCI in main-part of FACILITY_REQ)
-> dann bekommst Du die Audiodaten aus dem Line-Interconnect
Sind beide Bits gesetzt, werden die Audiosignale gemischt.
Falls Du auch noch DATA_B3_REQs abschicken willst, wären die Bits Nr. 3 und
5 zu setzen.
Grüße,
Danilo Kempf
hi danilo,

vielen dank für die schnelle hilfe. du hast mich natürlich irgenwie
entlarvt, da dies ein jungfräulicher auftritt meinerseitz im usenet war.
in zukunft dann nur noch in englisch und meine shift finger werden
ab sofort täglich trainiert.

Diese "LI Request Parameter" und "LI Connect Request Participiant"
verwirren mich dennoch. Wenn ich z. B. drei Konferenzteilnehmer
zusammenschalten möchte und dabei einer alles hören, aber
nur mit einem sprechen kann (teacher-pupil) wie muss denn dann
die jeweilige Mask aussehen?

viele grüsse
j.
Danilo Kempf
2005-11-13 17:08:03 UTC
Permalink
Post by jens meinerseitz
Diese "LI Request Parameter" und "LI Connect Request Participiant"
verwirren mich dennoch. Wenn ich z. B. drei Konferenzteilnehmer
zusammenschalten möchte und dabei einer alles hören, aber
nur mit einem sprechen kann (teacher-pupil) wie muss denn dann
die jeweilige Mask aussehen?
Hallo,

ja, die ganze LI-Geschichte in der CAPI ist zwar durchaus flexibel, leider
aber auch reichlich wirr. Das hätte man auch schöner machen können...

Versteh' ich Deine Anforderungen jetzt richtig? Du hast eine Konferenz
zwischen einer Handvoll Schülern. Die können sich alle gegenseitig hören
und plaudern vergnügt miteinander. Dazu kommt dann halt ein Lehrer, der
auch alles hört, dessen Ansagen aber nur _einem_ der Schüler eingespielt
werden.

Weiterhin nehme ich an, daß sowohl Lehrer als auch Schüler mit der
Applikation (per Ruf) verbunden sind, d.h. daß die Applikation selbst nur
die Konferenzplattform zur Verfügung stellt und nicht selbst dran
teilnimmt. (Andere Möglichkeit wär' ja, daß z.B. der Lehrer auf
Applikationsseite sitzt, d.h. sein Sprachsignal per DATA_B3_REQ
herunterschickt...)

Wenn dem nicht so ist, dann brauchst Du jetzt gar nicht weiterlesen :-)

Für die Schüler-Konferenz würde ich wie folgt verfahren: Jedesmal, wenn ein
Schüler sich in Dein System einwählt (oder angerufen wird), schickst Du ein
FACILITY_REQ zum Etablieren des LI mit dem PLCI des Schülers als main-PLCI.
Participants wären dann jeweils alle anderen Schüler, die sich bereits im
System befinden.

Im Main-Data-Path müßte dann gar kein Bit gesetzt werden, da die Audiodaten
vom Netz immer in die Konferenz und von der Konferenz immer auf's Netz
gespielt werden.

Für die einzelnen Participants müßten dann m.E. auch nur die Bits 0 und 1
gesetzt sein. Bit 0 führt dazu, daß der PLCI Sprachdaten aus der Konferenz
bezieht und sie zusätzlich aufs Netz schickt. Bit 1 führt dazu, daß die
Sprachdaten, die vom Netz (oder je nach weiteren gesetzen Bits, von
sonstwo) kommen in die Konferenz gemischt werden.

(Hier sollte, wenn Du das mal mit der Verschaltungsmatrix in der CAPI-Spec
vergleichst, auffallen, daß man mit den Data-Path-Bits nicht abschalten
kann, daß das Signal vom Netz in die Konferenz gemischt wird und umgekehrt.
Das ist eine *ungeheuer* ärgerliche Limitierung im CAPI-LI!)

So weit so gut, alle Schüler sollten sich jetzt hören und das ganze sollte
auch noch funktionieren, wenn ein Schüler auflegt.

Für den Lehrer bietet sich jetzt an, ein neues FACILITY_REQ zu erzeugen, mit
dem Lehrer eben als main-PLCI. Dort zunächst wieder keine der Bits für den
"Main-Data-Path" setzen. Participating PLCIs wären dann alle Schüler. Die
sollen aber diesmal ja den Lehrer nicht hören können, deshalb als Data-Path
dort nur das 1-Bit setzen, d.h. die Schüler schicken ihr Sprachsignal zum
Lehrer, aber nicht umgekehrt.

Wenn der Lehrer dann mit einem der Schüler reden will, dann müßte ein neues
FACILITY_REQ geschickt werden -- wieder mit dem Lehrer als main-PLCI und
dem Schüler als participant.
Main-Data-Path: wieder keine Bits gesetzt
Participating Data-PATH: sowohl 1 als auch 0 gesetzt.

Dies löscht den bereits bestehenden LI (also der unidirektionale zwischen
Schülern und Lehrer) nicht, upgradet aber den einen Teil so weit, daß
Lehrer und (ein) Schüler miteinander reden können.

Zum "downgraden" reicht dann wieder ein FACILITY_REQ mit Lehrer + dem einen
Schüler, mit den Data-Paths von weiter oben.

DATA_B3_INDs für die Applikation gibt's dann in keinem Fall mehr. Soll beim
Lehrer-Ruf noch mitgeschnitten werden, müßtest Du eben in dessen
Main-Data-Path noch die Bits 2 und 4 setzen.

Ich hoffe, daß das jetzt alles _einigermaßen_ richtig war -- genau sagen
kann ich's offengestanden nicht. Ich muß mich auch für jedes neue
LI-Szenario durch unseren Code wühlen -- letzlich läuft es meistens auf
Trial-and-Error hinaus.

Grüße,

Danilo Kempf
jens meinerseitz
2005-11-17 17:47:55 UTC
Permalink
lieber danilo,

vielen dank für die excellente hilfe!
das war spitze!

alles gute
j.

Loading...