Meetme oder Meetme2 sind Konferenzräume unter Asterisk. So wie es den IRC als Text-Chat gibt, existiert hier ein Raum, wo man hintelefonieren kann statt zu tippen. Man unterhält sich also in geselliger Runde.
Meetme vs Meetme2
Es gibt unter Asterisk eine Funktion Meetme, die jedoch einen zusätzlichen Treiber benötigt. Die Funktion Meetme2 ist dagegen eine externe Applikation, die zudem noch ein Webinterface mitbringt, also ist das eine gute Alternative zum eingebauten Meetme.
Meetme-Quellcode herunterladen und in Source-Verzeichnis kopieren
cd /usr/src/asterisk/apps
wget http://www.areski.net/asterisk-meetme/sources/app_meetme2.c
Meetme2-Quellcode patchen
Vielleicht hat sich der Quellcode von Asterisk so geändert, dass sich meetme2 nicht mehr ohne weiteres reinkompilieren lässt, daher muss der Quellcode gepatcht werden (Stand 13.4.2005). Sicherlich wird das später mal im Code selbst eingepflegt.
Man kann den Code per patch einspielen oder aber eben die wenigen zeilen händisch ändern, also:
- Im Editor (vorzugsweise vi) die app_meetme2.c öffnen
- Zu Zeile 643 (oder in die Nähe davon springen)
- Das was unter dem "
-643,7 +643,7 " steht reinsetzen:
- Also darunter: "} *confs;" einfügen
- Selbiges mit den anderen Zeilennummern machen (fangen mit @@ an)
- Speichern nicht vergessen (im vi z.B. Shift-ZZ)
--- app_meetme2.c 2004-04-07 06:37:18.000000000 -0500
+++ /usr/src/asterisk/apps/app_meetme2.c 2004-08-20
07:05:41.000000000 -0500
-643,7 +643,7
} *confs;
-static ast_mutex_t conflock = AST_MUTEX_INITIALIZER;
+AST_MUTEX_DEFINE_STATIC(conflock);
#include "enter.h"
#include "leave.h"
-1545,7 +1545,7
}else{
if (chan->_state != AST_STATE_UP)
ast_answer(chan);
- res = ast_say_number(chan, cnt, "", chan->language);
+ res = ast_say_number(chan, cnt, "", chan->language,
(char *)NULL);
}
LOCAL_USER_REMOVE(u);
return res;
Makefile anpassen
Das Makefile von Asterisk muss noch angepasst werden. Nutze dazu einen Editor Deiner Wahl und editiere die Datei /usr/src/asterisk/Makefile (sollte eigentlich da liegen, ansonsten wird Du es schon finden).
Ein Beispiel-Makefile findest Du hier:
http://www.areski.net/asterisk-meetme/sources/apps/Makefile
Nutze dieses Makefile aber nicht (!!), sondern suche dort nach "meetme2" und füge die Änderungen in Deinem Makefile ein.
Compilieren der Apps
Nun kommt das make...
cd /usr/src/asterisk/apps
make
make install
Jetzt sollte der Code compiliert und installiert sein. Falls hier etwas schiefgelaufen ist: Viel Glück bei der Fehlersuche ;-).
meetme2.conf erstellen
Nun muss noch /etc/asterisk/meetme2.conf erstellt werden. Ich gehe hierbei davon aus, dass eine lokale
MySQL?-Datenbank genutzt wird.
[db]
dbtype=mysql ;mysql oder postgres
hostname=localhost ;lokale DB, sonst Hostnamen eingeben
dbname=asterisk ;Datenbankname (kann in asterisk rein)
user=root ;root geht zwar, aber ein separater Datenbankuser ist besser
password=sUpErPasswort ;Das Passwort für den DB-User
port=3306 ;Port der MySQL?-DB (normalerweise 3306)
sequence=id_meetme_user ;Postgres-Parameter (Sequenz)
dbtable=meetme_user ;Tabellenname
[rooms]
conf => 1234 ;Konferenzraum 1
conf => 4321 ;Konferenzraum 2
Sounds herunterladen und in Sound-Verzeichnis kopieren
cd /var/lib/asterisk/sounds
wget http://www.areski.net/asterisk-meetme/sources/can_talk.gsm
wget http://www.areski.net/asterisk-meetme/sources/wait_totalk.gsm
Datenbanktabelle anlegen
Gehe nun auf die
MySQL?-Konsole (z.B. mit mysql -u root -p sUpErPasswort) und cut'n paste folgende Zeilen:
use asterisk;
CREATE TABLE meetme_user (
user_id INT not null AUTO_INCREMENT,
confno INT not null,
chan_name CHAR (30) not null,
fd INT not null,
ztc_chan INT not null,
ztc_confno INT not null,
ztc_confmode INT not null,
flag INT not null,
PRIMARY KEY (user_id));
Zur Kontrolle noch:
describe meetme_user;
Die Tabellenstruktur sollte nun korrekt dargestellt werden.
Fertig?
Nun sollte es im Prinzip schon funktionieren, Du kannst nun schonmal sehen, ob sich da etwas tut. Wenn Du keinen Kaffee brauchst und keine Lust auf Tests hast, geht es nun weiter...
Web-Meetme-UI herunterladen und konfigurieren
Nun muss das Webfrontend geholt werden. Bei einem Debian-System liegt das Webroot (sofern ein Apache installiert ist) unter /var/www, bei
SuSE? hab ich es schon wieder vergessen...
mkdir /var/www/meetme2
cd /var/www/meetme2
wget http://www.areski.net/asterisk-meetme/sources/asterisk_meetme_v1.tar.gz
tar -xvzf asterisk_meetme_v1.tgz
Editiere nun die defines.php.
* WEBROOT: Hier ist das Verzeichnis von meetme2.
Beispiel: http://sip.rowi.net/meetme2/
* FSROOT: Hier liegt die Applikation meetme2.
Beispiel: /usr/local/meetme2/
* HOST: Das ist der Datenbankserver.
Beispiel: localhost
* PORT: Der Datenbank-Port.
Beispiel: 3306
* USER: Und der User der Datenbank (wenn möglich, nicht root dafür nutzen).
Beispiel: root
* PASS: Genau, das Passwort für den Datenbank-User.
Beispiel: sUpErPasswort
* DBNAME: Name der Datenbank (im Beispiel liegt es mit in der Asterisk-DB).
Beispiel: asterisk
* DB_TYPE: Datenbank-Typ (wir sind von MySQL? ausgegangen)
Beispiel: mysql
* DB_TABLENAME: Tabellenname von meetme2.
Beispiel: meetme_user
Fertig!
So, nun kann meetme2 und das zugehörige Frontend gentutzt werden. Die Infos kommen von untenstehenden Link des Entwicklers, ich habe das lediglich ein bisschen eingedeutscht und angepasst. Natürlich ist hier alles ohne Haftung und so, ich hoffe dennoch, dass alles bei Dir geklappt hat.
Rolf (@) rowi (punkt) net.
Troubleshooting - wenn mal wieder nix klappt ;-)
Du freust Dich über ein neues Feature und der Compiler schmeisst nur Fehler raus? Mir geht es auch oft so. Hier einige Fehlermöglichkeiten und was man dagegen machen kann (bitte erweitern, wenn Du noch etwas weisst)
make: curl-config: Command not found
Hier hilft unter Debian ein apt-get install libcurl-dev, das dann die benötigte curl-config mitbringt
Link:
http://www.areski.net/asterisk-meetme/about.php?s=0