"Database unavailable" - HILFE

greenfrog

Neuer User
Mitglied seit
8 Dez 2006
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hi,
ich kann die astdb.conf nirgends finden. Wer kann mir weiterhelfen und sagen, wo ich diese evtl. downloaden kann oder wie man diese anlegt(neues Textdokument mit dem Namen astdb.conf wird nicht erkannt)

Danke
 
Was für eine Asteriskversion benutzt du denn? Irgendwelche Modifikationen?
Ich habe keine "astdb.conf" auch google findet dazu nichts.
Wie lautet denn die Fehlermeldung(en)?
 
ich nutze die Version 1.2.10
die Fehlermeldung ist "database unavailable" und dann je nachdem was ich machen will sagt er halt, dass er nichts lesen,schreiben,... kann.

Auf den Befehl database show kommt auch die Meldung database unavailable
 
Die Datenbank liegt in /var/lib/asterisk in der Datei astdb.
Ist diese nicht vorhanden wird sie neu erstellt (?).
Stimmen die Zugriffsrechte? Datenbankdatei eventuell beschädigt?
 
Was steht bei dir in der asterisk.conf:

[directories]
...
astvarlibdir => .../var/


Asterisk legt in diesem Pfad selbst die astdb an, sofern er die entsprechenden Rechte hat!

ansonsten kann man sie erzeugen mit ' > .../var/astdb'

Danach ist ein * Restart erforderlich!
 
Also bei mir steht folgendes:

[directories]
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /var/log/asterisk


Wo genau muss ich die denn erzeugen bzw. wie sehe ich ob asterisk die Rechte hat?
Hier mal die komplette Fehlermeldung:

linux*CLI> database show
Database unavailable
Dec 9 15:13:42 WARNING[5508]: db.c:67 dbinit: Unable to open Asterisk database
 
Sieht eher nach einem Rechteproblem aus.

# ls -la /var/lib/asterisk/astdb

Und als welcher Benutzer läuft asterisk?

Passiert meistens wenn man Asterisk als root laufen lässt und danach unter einem Benutzer.
 
linux:/ # ls -la /var/lib/asterisk/astdb
/bin/ls: /var/lib/asterisk/astdb: No such file or directory


Asterisk läuft unter Benutzer root.

Wie erstelle ich denn nun die database?
 
Wie schon gesagt, Asterisk erstellt die Datenbank neu, falls sie nicht existiert.
Nur um ganz sicher zugehen, das Asterisk als root läuft.
Code:
ps aux | grep asterisk
Gibt es das Verzeichnis /var/lib/asterisk ?
Warum Version 1.2.10? Aktuell ist 1.2.13, eventuell eine spezielle (gepachte) Version? VServer? etc...
 
Ist keine da erstellt Asterisk diese, mit Sicherheit wenn Asterisk als root läuft.
 
linux:/ # ps aux | grep asterisk root 5655 0.0 3.7 32200 19264 ? S 15:21 0:03 kwrite [kdeinit] /etc/asterisk/extensions.conf root 5918 0.0 3.6 31748 18680 ? S 15:36 0:00 kwrite [kdeinit] /etc/asterisk/features.conf root 6460 0.0 3.6 31892 18832 ? S 16:19 0:00 kwrite [kdeinit] /etc/asterisk/sip.conf root 7043 0.0 0.1 1856 604 pts/2 R+ 16:46 0:00 grep asterisk Das ist ja gerade das Problem, es gibt keine database. Wenn Asterisk diese erstellen würde müsste ich sie doch mit database show finden und auch einträge darin machen können oder? Asterisk 1.2.10-BRIstuffed-0.3.0-PRE-1s built by root @ linux on a i686 running Linux on 2006-11-08 13:30:33 UTC

Das Verzeichnis /var/lib/asterisk existiert mit den Ordnern agi-bin, firmware,images,keys,mohmp3,sounds
 
greenfrog schrieb:
linux:/ # ps aux | grep asterisk root 5655 0.0 3.7 32200 19264 ? S 15:21 0:03 kwrite [kdeinit] /etc/asterisk/extensions.conf root 5918 0.0 3.6 31748 18680 ? S 15:36 0:00 kwrite [kdeinit] /etc/asterisk/features.conf root 6460 0.0 3.6 31892 18832 ? S 16:19 0:00 kwrite [kdeinit] /etc/asterisk/sip.conf root 7043 0.0 0.1 1856 604 pts/2 R+ 16:46 0:00 grep asterisk

Da läuft kein Asterisk
 
linux:/etc/init.d # ps aux | grep asterisk
root 5655 0.0 3.7 32196 19260 ? S 15:21 0:03 kwrite [kdeinit] /etc/asterisk/extensions.conf
root 5918 0.0 3.6 31748 18680 ? S 15:36 0:00 kwrite [kdeinit] /etc/asterisk/features.conf
root 6460 0.0 3.6 31892 18832 ? S 16:19 0:00 kwrite [kdeinit] /etc/asterisk/sip.conf
root 7076 0.0 0.2 2484 1172 pts/2 S 16:47 0:00 /bin/sh /usr/sbin/safe_asterisk -U asterisk -G asterisk -C /etc/asterisk/asterisk.conf
asterisk 7084 0.1 1.4 17460 7580 pts/2 Sl 16:47 0:00 /usr/sbin/asterisk -U asterisk -G asterisk -C /etc/asterisk/asterisk.conf -vvvg -c
root 7194 0.0 0.1 1856 600 pts/2 R+ 16:54 0:00 grep asterisk



sorry
:rolleyes:
 
Läuft Asterisk als root - Nein
Kann Asterisk als Nicht root eine Datei anlegen?

keine Rechte zum anlegen -> keine astdb

-> Rechteproblem

Einfachste Lösung, asterisk als root starten, beenden und dann die astdb auf Benutzer asterisk, etc. stellen
 
Asterisk läuft NICHT als root.

s. http://www.voip-info.org/wiki-Asterisk+non-root

Ich habe in mein /etc/init.d/asterisk das auf dem link beschriebene Skript hinzugefügt, was bei mir so aussieht
(Edit: als nicht die ganzen Zeilen, sondern in ein externes Skript das von /etc/init.d/asterisk aufgerufen wird)
Code:
chmod --recursive u=rwX,g=rX,o= /var/lib/asterisk
chmod --recursive u=rwX,g=rX,o= /var/log/asterisk
chmod --recursive u=rwX,g=rX,o= /var/run/asterisk
chmod --recursive u=rwX,g=rX,o= /var/spool/asterisk
chmod --recursive u=rwX,g=rX,o= /dev/zap

chown --recursive root:asterisk /etc/asterisk
chmod --recursive u=rwX,g=rX,o= /etc/asterisk

chown --recursive root:asterisk /usr/lib/asterisk
chmod --recursive u=rwX,g=rX,o=rX /usr/lib/asterisk


chown asterisk /dev/tty9

# chown asterisk /dev/capi20

# For wakup calls
mkdir -p /tmp/wakeups
chown --recursive asterisk:asterisk /tmp/wakeups
chmod --recursive u=rwX,g=rX,o= /tmp/wakeups
(die wakup calls sind nicht nötig, ich habe sie aber mal als Demo gelassen)
 
und wo kommt das script hin?
einfach in ein neues textfile kopieren?
wie wird es eingebunden?
:confused:
danke
 
greenfrog schrieb:
und wo kommt das script hin?
Egal z.B. /usr/local/sbin/astrights
greenfrog schrieb:
einfach in ein neues textfile kopieren?
Ja , danach noch ausführbar machen (chmod)
greenfrog schrieb:
wie wird es eingebunden?
Wie startest du denn dein Asterisk?
Falls du das Debianskript oder ähnliches benutzt z.B. so
/etc/init.d/asterisk
Code:
case "$1" in
  start)
    echo -n "Starting $DESC: "
    # *** ADDED change ***** :
    /usr/local/sbin/astrights
    start-stop-daemon --start --pidfile "$PIDFILE" --exec $DAEMON -- $PARAMS
    echo "$NAME."
    ;;
 
Jetzt funktionierts(habe Asterisk die Rechte gegeben)
Danke für die Antworten
 
Kostenlos!

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
248,521
Beiträge
2,293,504
Mitglieder
378,028
Neuestes Mitglied
tempuser777