[Gelöst] Unable to connect to remote asterisk

Max

Neuer User
Mitglied seit
27 Sep 2004
Beiträge
171
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich weiß leider nicht, was ich falsch mache. Ich starte Asterisk als daemon (Benutzer asterisk / Gruppe asterisk), wie in diesem Thread beschrieben:

http://www.ip-phone-forum.de/forum/viewtopic.php?t=3168

Das klappt auch wunderbar. 'ps -ef | grep asterisk' liefert folgende Ausgabe:
Code:
root     32530     1  0 18:48 pts/1    00:00:00 /bin/sh /usr/sbin/safe_asterisk -U asterisk -G asterisk
asterisk 32551 32530  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32563 32551  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32565 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32566 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32567 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32568 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32569 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32570 32567  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32571 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32572 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32575 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32576 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32577 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32578 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32579 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32580 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32581 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
asterisk 32582 32563  0 18:48 pts/1    00:00:00 asterisk -U asterisk -G asterisk -vvvg -c
root     32596 32401  0 18:56 pts/1    00:00:00 grep asterisk

Nun möchte ich mich jedoch, um Asterisk gescheit debuggen zu können von der Konsole aus damit 'verbinden'. Ich dachte hierfür wäre das Kommando 'asterisk -r'.

Leider bekomme ich damit aber immer die Fehlermeldung:
Unable to connect to remote asterisk

Kann ich, wenn ich Asterisk als daemon starte vielleicht gar nicht mehr debuggen?? - Habt ihr irgendeine Idee, was ich falsch mache?? Funktioniert es bei euch?

Vielen Dank im Voraus!
Mfg,
Max
 
wenn Du den Asterisk vom User "asterisk" starten laesst kann sich auch nur dieser User mit dem Asterisk verbinden, also melde Dich als "asterisk" an und probiere das nochmal.
 
asterisk -rc geht auch nicht ?

Oder screen -x , wenn Du es so konfiguriert hast wie otaku in dem anderen thread es beschrieben hat ?

Mich stoerte bei anderen Loesungen, dass man nicht alle Informationen im CLI angezeigt bekommt, wenn man sich mit "asterisk -rc" mit einem im Hintergrund laufenden Asterisk verbunden hat - zumindest habe ich in diesen Faellen immer weniger Informationen gesehen als direkt auf der CLI, ganz egal, wieviele "-v" ich beim Aufruf mit angehaengt habe.

Daher habe ich den Weg ueber "screen" gewaehlt. Asterisk laeuft auch damit im Hintergrund, aber ich kann mich direkt mit der jeweiligen "Konsole" von Asterisk verbinden, wenn ich "screen -x" eingebe. Wenn ich fertig bin, druecke ich einfach "CTRL+A" und danach noch "D", und ich bin wieder am Prompt - Asterisk laeuft weiterhin im Hintergrund.
 
Okay, sorry. Ich hatte mich ein bisschen missverständlich ausgedrückt. Ich benutze die 'redhat-Lösung', wie sie in dem oben genannten Thread beschrieben ist. D.h. ich verwendet das normale Skript, welches bei Asterisk mit dabei ist... (nicht die 'screen-Lösung').

Mit 'asterisk -rc' gehts auch nicht. Immer die gleiche Fehlermeldung. Ich weiß wirklich nicht, woran es liegen könnte.

Worüber würde man sich denn dann mit Asterisk verbinden? - Läuft das über einen bestimmten Port, den ich eventuell noch freischalten bzw. in irgendwelchen Konfigurationsfiles eintragen müsste??
 
Ich werde hier mal mein Sartupskript, welches ich verwende um Asterisk zu starten, posten.

Code:
#!/bin/sh
# $Id: asterisk,v 1.2 2004/07/18 20:24:07 Gregory Boehnlein <[email protected]>
#
# asterisk    Starts, Stops and Reloads Asterisk.
#
# chkconfig: 2345 40 60
# description: Asterisk PBX and telephony daemon.
# processname: asterisk
# pidfile: /var/run/asterisk.pid
#
# Sun Jul 18 2004 Gregory Boehnlein <[email protected]>
# - Updated Version to 1.2
# - Added test for safe_asterisk
# - Verified SIGTERM issued by "killproc" ensures "stop gracefully"
# - Added support for -U and -G command line options
# - Modified "reload" to call asterisk -rx 'reload'

# Source function library.
. /etc/rc.d/init.d/functions

[ -x /usr/sbin/asterisk ] || exit 0
[ -d /etc/asterisk ] || exit 0

# Leave this set unless you know what you are doing.
export LD_ASSUME_KERNEL=2.4.1

# zaphfc module
ZAPHFC_MODULE=/usr/lib/asterisk/zaphfc.ko

# Full path to asterisk binary
DAEMON=/usr/sbin/asterisk

# Full path to safe_asterisk script
SAFE_ASTERISK=/usr/sbin/safe_asterisk

# Uncomment the following and set them to the user/groups that you
# want to run Asterisk as. NOTE: this requires substantial work to
# be sure that Asterisk's environment has permission to write the
# files required  for  its  operation, including logs, its comm
# socket, the asterisk database, etc.
#AST_USER="asterisk"
#AST_GROUP="asterisk"
AST_USER="asterisk"
AST_GROUP="asterisk"

RETVAL=0

start() {
        # load ZAPHFC
        modprobe zaptel
        insmod $ZAPHFC_MODULE modes=1 debug=0
        ztcfg -v

        # Start daemons.
        echo -n $"Starting asterisk: "
        if [ -f $SAFE_ASTERISK ] ; then
                DAEMON=$SAFE_ASTERISK
        fi
        if [ $AST_USER ] ; then
                ASTARGS="-U $AST_USER"
        fi
        if [ $AST_GROUP ] ; then
                ASTARGS="`echo $ASTARGS` -G $AST_GROUP"
        fi
        daemon $DAEMON $ASTARGS
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk
        echo
        return $RETVAL
}

stop() {
        # Stop daemons.
        echo -n $"Shutting down asterisk: "
        killproc asterisk
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/asterisk
        echo

        # unload ZAPHFC module
        rmmod zaphfc zaptel

        return $RETVAL
}

restart() {
        stop
        start
}

reload() {
        $DAEMON -rx 'reload' > /dev/null 2> /dev/null
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  reload)
        reload
        ;;
  condrestart)
        [ -f /var/lock/subsys/asterisk ] && restart || :
        ;;
  status)
        status asterisk
        ;;
  *)
        echo "Usage: asterisk {start|stop|restart|reload|condrestart|status}"
        exit 1
esac

exit $?

Vielleicht kommt so einer drauf, was ich falsch machen. Asterisk startet problemlos. Leider kann ich mich nicht remote damit verbinden.

Liegt es daran, dass

a) ich Asterisk nicht alls root starte (kann eigentlich nicht sein; hab das gleiche Problem auch wenn ich mit root starte)
b) irgendwelche Ports durch die Firewall gesperrt sind?

Startet jemand von euch Asterisk auch mit dem Startupskript? Funktioniert das remote verbinden??
 
also ich kann keinen fehler finden. bisher hatte ich asterisk immer von hand gestartet. aber auch mit dem skript gehts (nach kleinen anpassungen an SuSE)
 
ja. ich kann keinen fehler finden ;)
öhm. also. ja. es geht auch mit skript.
aber ich weiss nicht, was "daemon" bei redhat macht.
versuchs mal ohne.
aber du sagtest auch, dass es auch nicht geht, wenn du * normal startest.
wie verbindet er sich da? über socket?tcp? weiss nicht, also könnte es auch an deiner firewall liegen......
 
Okay, ich bin dahintergekommen. Mein Problem war folgendes: Ich hab Asterisk als Benutzer Asterisk (Gruppe Asterisk) gestartet nd in der Konfigurationsdatei \etc\asterisk\asterisk.conf war ein Fehler drinnen.

Das Verzeichnis, in dem das pid-File abgelegt werden soll, muss in meinem Fall so heissen:
Code:
astrundir => /var/run/asterisk

Denn nur /var/run/asterisk ist für Benutzer Asterisk:Asterisk schreibbar.

Zuvor stand
Code:
astrundir => /var/run
in der Datei drinnen. Damit konnte er wohl nichts anfangen (weil die Schreibrechte fehlten), hat aber trotzdem Asterisk erfolgreich gestartet.

Das Problem trat dann aber beim remote-connecten auf...
 
na schön. dann sind ja alle wieder glücklich ;)

cya
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.