Anleitung SER und serweb
Dokumentation SIP-Router „SER“
Vorraussetzungen:
- Benutzt wurde ein Debian Linux 3.2 (Minimalinstallation)
- Compaq Proliant DL360, PIII 800MHz, 1024MB RAM
(ein alter PII mit 300MHz reicht aber auch völlig aus)
- 2 weitere PCs mit Softphones, in meinem Fall „xLite“
- natürlich müssen die 3 Rechner vernetzt sein
Installation:
Auf dem Debian System müssen folgende Server und Software installiert werden:
- (Apache) Webserver
- MySQL Datenbank-Server
- php4 Unterstützung
- php4-mysql (MySQL Modul für php4)
All diese Komponenten sind über „apt-get“ erhältlich. Als sehr hilfreich bei der Fehlersuche und zur Übersichtlichkeit der Datenbank hat sich bei mir phpMyAdmin erwiesen.
So, jetzt einfach den SER mit Zubehör runterladen,
SER-Router:
http://ftp.berlios.de/pub/ser/latest/packages/debian/stable/
(der eigentliche Router)
MySQL-Modul:
http://ftp.berlios.de/pub/ser/latest/packages/debian/stable/
(SQL Unterstützung für den Router)
serweb:
http://ftp.berlios.de/pub/ser/latest/contrib/
(Web-Interface für den Router)
und dann kann es auch schon losgehen.
dpkg –i ser-0.8.14_i386.deb
dpkg –i ser_mysql_module…..
Jetzt läuft auch schon der SIP Router und die Datenbank wurde gekoppelt (wird aber noch nicht benutzt).
Umgebungsvariablen setzen: export SIP_DOMAIN=“Domänenname“
Und die /etc/profiles editieren, dass die Variable nach einem Neustart nicht verloren geht. Einfach ans Ende der Datei schreiben.
vi /etc/profiles export SIP_DOMAIN=“Domänenname“
p.s. ich hab als Domänenname die IP-Adresse des Servers genommen, da gab es später weniger Probleme.
Der Router lässt in diesem Zustand alle Benutzer die sich anmelden zu und verbindet auch weiter. --- ausprobieren! (Im xLite Menü SIP-Proxy und Namen eintragen)
Unter /usr/sbin/ser_mysql.sh liegt das shell Skript ab. Dort stehen die login-Daten für die Datenbank und noch ein paar andere Sachen. Einfach mal anschauen. Mit dem Befehl usr/sbin/ser_mysql create wird die entsprechende Datenbank für den Router angelegt. Passwort für root sollte leer sein, also BLANK, da wir ja noch keins angelegt haben.
Am besten schaut man sich jetzt mal die Datenbankstruktur unter phpMyAdmin, oder unter der Konsole an.
Nun existiert ein SIP-Router und eine zugehörige Datenbank. Der Router weiß aber noch nicht, dass es diese db gibt und er ihre Einträge benutzen soll.
Dazu schauen wir in die config Datei des SER: etc/ser/ser.cfg
Um nur Benutzer zu akzeptieren, die auch in der db hinterlegt sind muss man hier folgende Einträge auskommentieren:
Zugriff auf die Datenbank:
/usr/lib/ser/modules/auth.so
modparam(„usrloc“,“db_mode“,0) diese Zeile kommentieren
modparam(„usrloc“,“db_mode“,2)
Benutzer autorisieren:
/usr/lib/ser/modules/auth_db.so
if(!www_authorize(“unsere Domäne”,”subscriber”))
www_challenge(“unsere Domäne”,”0”);
Mit dem Befehl „serctl add benutzername passwort benutzername@domäne“ werden Benutzer hinzugefügt (in die Tabelle “subscriber”)
User der Datenbank ist „ser“ und das Passwort ist „heslo“
Den SER noch mal neu starten und dann sollte das ganze auch schon funktionieren!
Installation des Web-Interfaces „serweb“
Das tar-Archiv von serweb haben wir ja schon runtergeladen. Dieses muss mit tar –xvzf entpackt werden (erst mal egal wo) und danach existiert ein Ordner /serweb_2004-01-04 mit Unterordnern und verschiedenen Dateien.
Als nächstes muss man im Hauptverzeichnis des Webservers (/var/www) am besten die Standard index.html löschen und zwei Ordner anlegen und kurz bearbeiten. (wer das phpMyAdmin tool installiert hat, findet dort schon einen Ordner)
mkdir /var/www/phplib
chown root /var/www/phplib
chgrp root /var/www/phplib
chmod 755 /var/www/phplib
cp ./phplib/* /var/www/phplib/ -R
mkdir /var/www/html/serweb/
chown apache /var/www/html/serweb/
chgrp root /var/www/html/serweb/
chmod 755 /var/www/html/serweb/
cp ./html/* /var/www/html/serweb -R
Der Benutzer, der den Apache deamon ausführt, heißt nicht immer apache. Bei meiner Installation war es z.B. nobody, d.h. „chown nobody“ oder auch „chown www-data“.
Durch den Befehl „ps –ef“ kann man das heraus finden
Jetzt befinden sich die html Seiten und php lib’s im Webserver Verzeichnis, jedoch sind wir noch nicht ganz fertig. Einige config Dateien müssen nun angepasst werden:
Edit: /etc/php.ini
short_open_tag = Off" to "On"
register_globals = Off" to "On"
Diese Dateien müssen neu angelegt werden:
vi /var/www/html/serweb/prolog.html
<body><H1>SER SIP Server</H1>
vi /var/www/html/serweb/separator.html
<HR>
vi /var/www/html/serweb/epilog.html
<H1>End of page text</H1></BODY>
Edit: /var/www/html/serweb/config.php
hier muss man alle IP-Adressen Einträge (192.168.2.16) auf seine eigene ändern. Am wenigsten Probleme entstehen wenn man die eigene loopback nimmt: 127.0.0.1
(keinen Eintrag vergessen!!!)
hat man den Datenbanknamen oder Benutzer verändert sollte man das hier entsprechend nachtragen:
$this->db_name="ser"; //database name
$this->db_user="ser"; //database connection user
$this->db_pass="heslo"; //database connection password
der nächste Eintrag muss der web-route entsprechen:
$this->root_path="/html/serweb/";
weitere Anpassungen sind in diesen Einträgen vorzunehmen:
this->user_pages_path = this->root_path."user_interface/";
$this->prolog="/html/serweb/prolog.html";
$this->separator="/html/serweb/separator.html";
$this->epilog="/html/serweb/epilog.html";
$this->root_uri.$this->root_path."user_interface/my_account.php?#session#\n\n".
$this->root_uri.$this->root_path."user_interface/reg/confirmation.php?nr=#confirm#\n\n".
Edit: /var/www/phplib/db_mysql.inc
var $Host = "127.0.0.1";
var $Database = "ser";
var $User = "ser";
var $Password = "heslo";
Als letztes benötigen fast alle php Scripte noch die korrekte Pfadangabe zu den php lib’s.
Generell muss man hier überall noch ein „../“ hinzufügen; und so soll es dann aussehen:
· Edit ./admin/prepend.php
# change $_PHPLIB["libdir"] = "../../../phplib/";
· Edit ./user_interface/prepend.php
# change $_PHPLIB["libdir"] = "../../../phplib/";
· Edit ./user_interface/reg/prepend.php
# change $_PHPLIB["libdir"] = "../../../../phplib/";
· Edit ./admin/acl.php
# change require "../../../phplib/oohforms.inc";
· Edit ./admin/index.php
# require "../../../../phplib/oohforms.inc";
· Edit ./admin/users.php
# require "../../../../phplib/oohforms.inc";
· Edit ./user_interface/accounting.php
# require "../../../../phplib/oohforms.inc";
· Edit ./user_interface/find_user.php
# require "../../../../phplib/oohforms.inc";
· Edit ./user_interface/index.php
# require "../../../phplib/oohforms.inc";
· Edit ./user_interface/missed_calls.php
# require "../../../phplib/oohforms.inc";
· Edit ./user_interface/my_account.php
# require "../../../phplib/oohforms.inc";
· Edit ./user_interface/phonebook.php
# require "../../../phplib/oohforms.inc";
· Edit ./user_interface/send_im.php
# require "../../../phplib/oohforms.inc";
· Edit ./user_interface/notification_subscription.php
# require "../../../phplib/oohforms.inc";
· Edit ./user_interface/reg/finish.php
# require "../../../../phplib/oohforms.inc";
· Edit ./user_interface/reg/get_pass.php
# require "../../../../phplib/oohforms.inc";
· Edit ./user_interface/reg/index.php
# require "../../../../phplib/oohforms.inc";
Jetzt den Web-Server, die Datenbank und SER neu starten und ausprobieren, ob der Admin und der User login funktionieren.
è
http://ip-adresse.html.serweb.admin
è
http://ip-adresse.html.serweb.user_interface
Ich habe festgestellt, dass die meisten Fehlermeldungen durch falsche Einträge in den verschiedenen config Dateien, wie z.B. „host“, „user“, password“ entstehen. Einweiteres Problem sind sehr häufig falsche Pfadangaben in php Scripten zu den lib’s (--cannot open..., cannot find datei.inc usw.)
Bei einer Fehlermeldung mit „/tmp/fifo“ hat es bei mir geholfen einfach mal die Berechtigung hoch zu setzen – chmod 777 /tmp/fifo.
Was auch noch wirklich weiterhilft:
log-files des apache anschauen, welche Seiten aufgerufen werden und wo er danach sucht.
In den log-files der Datenbank sieht man meistens, welche abfragen eingehen und mit welchen Benutzern oder Passwörtern dies geschieht. Dann einfach mal mit den Einträgen in der db vergleichen.
O.K., so sollte das ganze funktionieren.
wenn euch die doku gefallen und weitergeholfen hat (oder auch kritik), würd ich mich über eine kurze antwort freuen.....
danke tobias