[Frage] Ist bei der Asterisk auch ein "interaktives" MeetMe möglich?

subsinker

Neuer User
Mitglied seit
8 Mrz 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

zunächst: Es freu mich, mich bei euch registriert zu haben!
Arbeite nun schon seit einigen Jahren mit Asterisk. Zuletzt bei meinem letzten Arbeitgeber. Bin mittlerweile woanders untergekommen, wo die Asterisk in wesentlich umfangreicherem Rahmen genutzt wird und ich so vor völlig neue Herausforderungen komme =)
Da ich leider nun bei einer Sache mit Google und meinem Gedankenkonzept nicht weiterkomme, hoffe ich, ihr könnt mir vielleicht weiterhelfen bzw. Denkanstöße geben.

Folgendermaßen schauts aus:
Wir sind eine Online-Sprachenschule und realisieren Gruppenunterricht über Telefonkonferenzen.
Diese Telefonkonferenzen laufen über unsere extern stehende Asterisk ab.
Jedes Land hat die Möglichkeit eine lokale Festnetznummer anzurufen um so aber auch letztlich in der gleichen Konferenz zu landen, wie alle anderen Teilnehmer.
Dafür haben wir zig verschiedene Nummern (SIP-Accounts) bei verschiendenen Providern laufen.
Dies funktioniert soweit auch alles prima!

Realisieren tun wir dies über die MeetMe-Funktion in der Asterisk.
Dabei ist aber noch folgendes Scenario zu beachten:
Über unser Portal loggt man sich in den "Klassenraum" ein und bekommt die Nummer, die man anrufen soll angezeigt mit der Aufforderung eine PIN einzugeben.
Ruft man diese Nummer an, sagt die Asterisk die PIN.
Diese PIN wird über ein PHP-basiertes AGI-Script in Abhängigkeit zur Session-ID des Klassenraums generiert.
Nun gibt man sie ein. Dies Asterisk prüft in diesem Moment:
- Rufnummer über die man sich zu uns eingewählt hat
- eingegebene PIN
Die Kombination aus beidem lässt die Asterisk schließlich darüber entscheiden, ob die eigegebene PIN korrekt ist. Ist sie das, landet man in der TelCo.
Die MeetMe-Konferenz selbst bekommt dann über unser Script die ID der Klassenraumsitzung auf der Website. Die Teilnehmer innerhalb der MeetMe werden einfach ab 1 aufwärts gezählt, bei einem Reconnect in die Telco wird ebenfalls einfach weitergezählt.
Soviel zum grundlegenden "Drumherum".

Ich denke, Code-Schnipsel sind hier erstmal noch nicht so wichtig, da es mir ja prinzipiell erstmal um die eigentliche Machbarkeit geht.
Folgendes stelle ich mir vor:
Konf. aus, sagen wir mal, 15 Teilnehmern + 1 Lehrer.
Lehrer hat den MEETMEADMIN inne.
Nach einer kurzen Evaluierung sollen nun 3 Gruppen à 5 Teilnehmer gebildet werden, welche dann in "Gruppenarbeit" über die Telco Aufgaben lösen können.
Dabei soll der Lehrer aber die Möglichkeit haben, die Gruppen selbst zu bestimmen und eben in "Konferenz-Unterräume" zu verteilen.
Die Gruppen unter sich sollen sich in dem Moment nicht mehr hören können, nur die Teilnehmer einer einzelnen Gruppe untereinander.
Der Lehrer sollte aber stets die Möglichkeit haben alle Untergruppen wieder zu einer großen Gesamtkonferenz zusammenzuschalten.

Somit wäre das Konstrukt gebildet. Wir sind in der Lage, jeden Dialplanbefehl über die Website an die Asterisk zu geben.
Der Witz ist halt nur, dass es vermieden werden soll, dass die Teilnehmer neu anrufen müssen. Daher eben "interaktiv". Im besten Fall kann der Lehrer einfach Schüler "verschieben" bzw. "abkapseln".

Vielleicht hat ja jemand schon etwas vergleichbares aufgebaut.
Was vielleicht noch wichtig wäre:
- Asterisk 1.6.2.11
- DAHDI als Zeitgeber (und NUR als Zeitgeber ;-))
- Alle Nummern via SIP an der Asterisk

Es wäre super, wenn mir allein schon jemand einen Denkanstoß geben könnte!

Danke vorab!

Grüße aus Köln,
Sascha
 
R

rentier-s

Guest
Mit ChannelRedirect sollte das machbar sein. Allerdings gilt es bei dem Aufbau, den Überblick zu behalten. Soll heißen, Du müsstest datenbankmäßig erfassen, welche Channels vorher in der Konferenz waren, um sie nachher wieder einzusammeln.
 

subsinker

Neuer User
Mitglied seit
8 Mrz 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Das klingt ziemlich gut...
Müsste mir natürlich erstmal den ChannelRedirect näher zu Gemüte führen.

Meinst du AstDB packt das? Würde daher die einfach nehmen.

Im Zweifelsfall würde ich sonst (sollte das ggf. besser sein) unsere ohnehin schon mit der Asterisk sprechende mysql nehmen.
 
R

rentier-s

Guest
Der Zugriff vom WebGUI geht auf MySQL leichter als auf die AstDB, daher würde ich MySQL vorziehen.
 

subsinker

Neuer User
Mitglied seit
8 Mrz 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Ach stimmt... Für unser Klassenraum-Frontend wäre die MySQL sinnvoller...
 

subsinker

Neuer User
Mitglied seit
8 Mrz 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo liebe Leute.

Das Thema ist nun schon ziemlich alt, aber nun wird es endgültig spruchreif und ich habe schon ein wenig probiert.
Leider recht erfolglos bisher.

Habe nun mit dem ChannelRedirect schon ein wenig rumgespielt.

Folgendermaßen schaut es nun aus:
Generell würde das Verschieben von Teilnehmern von einer in die andere/neue MeetMe ja über DTMFs laufen.
Diese simulieren wir ja bereits über PHP-AGI-Scripts. Momentan auch bereits im Einsatz für bspw. die Lautstärkekontrolle im Klassenraum und das Abspielen von Audios.

Nun habe ich über die features.conf in der "applicationmap" folgende DTMF-Folge hinzugefügt:

[applicationmap]
nway-start => *5,caller,Macro,nway-start


Soweit so gut.
Analog dazu das Macro im Dialplan (extensions.conf):
[macro-nway-start]
exten => s,1,Set(CONFNO=${FindFreeConf()})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)


Und natürlich im betroffenen Kontext die Dynamic Features aktiviert:
exten => _X.,1,Set(DYNAMIC_FEATURES=nway-start)

Nun stoße ich vor folgendes Problem:
Innerhalb der MeetMe scheint die Asterisk außer den Konferenzkonrollen (Lautstärke etc.) überhaupt keine DTMFs anzunehmen.
Beim Drücken meiner *5 kommt weder die Aussage, dass das Macro ausgeführt, noch, dass es einen Fehler beim Inhalt der Variable ${BRIDGEPEER} gibt.
Letzteres wäre verständlich, da beide Parteien nicht zunächst miteinander verbunden sind, sondern nur in einem Pseudo-Channel der MeetMe.
Die Channel-IDs der einzelnen Teilnehmer könnten später aber ohne Probleme von SCripts ausgelesen und an die Stelle gesetzt werden.
Zunächst wäre ich aber froh, wenn die ASterisk irgendwie auf mich reagieren würde.

Den Ansatz für dieses Makro habe ich hierher:
http://www.voip-info.org/wiki/view/Asterisk+n-way+call+HOWTO

Den Part mit der anrufenden Partei habe ich weg gelassen, da sich hier nun jeder selbst in die Konferenz einwählt und nicht eingeladen wird.

Wäre echt toll, wenn ihr mir etwas auf die Sprünge helfen könntet.

Danke!
 

afro

Neuer User
Mitglied seit
18 Nov 2004
Beiträge
52
Punkte für Reaktionen
0
Punkte
0
Hi. Spannendes Thema! :)
Innerhalb der MeetMe scheint die Asterisk außer den Konferenzkonrollen (Lautstärke etc.) überhaupt keine DTMFs anzunehmen.
Ich schieße mal ins Blaue: hast du per Console Debug mal versucht, die ankommenden DTMF Töne zu prüfen? Vielleicht kommen die Töne ja wirklich nicht beim * an?!
Ich kenne ähnliche Problematik bei uns. Wir nutzen ein Softphone, welches DTMF unterstützt aber aus bisher unerklärlichen Gründen verschluckt das Softphone gerne mal DTMF Töne. Da kommen ganze Zahlenreihen einfach nicht am * an. Per Hardphone gibts keinerlei Probleme.