.titleBar { margin-bottom: 5px!important; }

realtime => mysql, failed to connect

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von prochmi, 5 Dez. 2005.

  1. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hallo,
    ich habe die asterisk-addons-1.2 erfolgreich compiliert und installiert.

    ein show modules zeigt auch den res_config_mysql.so

    trotzdem finde ich in /var/log/asterisk/messages nur folgendes:
    Code:
    Dec  5 13:38:45 NOTICE[17390] cdr.c: CDR simple logging enabled.
    Dec  5 13:38:45 ERROR[17390] res_config_mysql.c: MySQL RealTime: Failed to connect database server asterisk on 127.0.0.1. Check debug for more info.
    Dec  5 13:38:45 WARNING[17390] res_config_mysql.c: MySQL RealTime: Couldn't establish connection. Check debug.
    Dec  5 13:38:45 NOTICE[17390] indications.c: Removed default indication country 'us'
    Dec  5 13:38:45 NOTICE[17357] chan_sip.c: Unable to load config sip.conf
    Dec  5 13:38:45 WARNING[17390] cdr_addon_mysql.c: Unable to load config for mysql CDR's: cdr_mysql.conf
    
    meine res_mysql.conf beinhaltet:
    Code:
    [general]
    dbhost = 127.0.0.1
    dbname = asterisk
    dbuser = admin
    dbpass = 1234
    dbport = 3306
    dbsock = /tmp/mysql.sock
    
    auf der konsole kann ich mich auch mit admin+passwd auf die DB connecten.

    irgendwelche ideen?

    mfg,
    michael
     
  2. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    nimm mal die Zeilen dbport und dbsock raus.

    Hast Du MySQL direkt installiert oder über z.B. das XAMPP Paket ?
     
  3. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ich bin draufgekommen, das der default sock nicht stimmt, also hab ich ihn auf /var/run/mysqld/mysqld.sock geändert (den gibts), geht trotzdem nicht.

    wenn ich dbsock ganz rausnehme, dann verwendet er den default wert der sicher falsch ist (weil nicht vorhanden).

    ich hab mysql direkt installiert.

    noch irgendwelche ideen?

    mfg,
    michael
     
  4. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wie sieht dein cdr_mysql.conf aus?
     
  5. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    die gibts nicht (zumindest nicht bewusst) :)

    kann da irgendeine sample config stören?

    mfg,
    michael
     
  6. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Du hast doch sicher die Asterisk-Addons irgendwohin entpackt und im Ordner Asterisk-Addons gibts einen Ordner configs, da liegen dann sample Files drinnen. Umbenennen und nach /etc/asterisk kopieren!
     
  7. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Bei mir läuft das mit dem default übrigens ganz prima :wink:


    das ist zwar ein interessanter und wichtiger Hinweis, wenn man aber MySQL nur für Realtime verwenden möchte, ist die cdr_mysql.conf nicht erforderlich. Allerdings darf dann natürlich auch das cdr_mysql Modul nicht geladen werden.
     
  8. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ok, nun habe ich das modul cdr_addon_mysql.so auch noch deaktiviert, trotzdem bringt mir ein reload res_config_mysql.so noch immer den fehler.

    Code:
        -- Reloading module 'res_config_mysql.so' (MySQL RealTime Configuration Driver)
      == Parsing '/etc/asterisk/res_mysql.conf': Found
    Dec  6 05:54:51 WARNING[2310]: res_config_mysql.c:544 parse_config: MySQL RealTime: No database port found, using 3306 as default.
    Dec  6 05:54:51 ERROR[2310]: res_config_mysql.c:615 mysql_reconnect: MySQL RealTime: Failed to connect database server asterisk on 127.0.0.1. Check debug for more info.
    Dec  6 05:54:51 WARNING[2310]: res_config_mysql.c:495 reload: MySQL RealTime: Couldn't establish connection. Check debug.
      == MySQL RealTime reloaded.
    
    netstat -l sagt folgendes:
    Code:
    Aktive Sockets in der UNIX Domäne (Nur Server)
    Proto RefZäh Flaggen     Typ        Zustand       I-Node Pfad
    unix  2      [ ACC ]     STREAM     HÖRT          7877     /var/run/asterisk/asterisk.ctl
    unix  2      [ ACC ]     STREAM     HÖRT          4839     /var/run/mysqld/mysqld.sock
    
    daher schaut meine res_mysql.conf so aus:
    Code:
    [general]
    dbhost = 127.0.0.1
    dbname = asterisk
    dbuser = admin
    dbpass = xxxx
    dbsock = /var/run/mysqld/mysqld.sock
    
    auf der konsole kann ich mich super zur db connecten (als user admin anmelden und dann mit use die DB asterisk auswählen).

    noch irgendwelche ideen?

    mfg,
    michael
     
  9. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Hat der Asterisk entsprechende Zugriffsrechte auf das Socket-Verzeichnis ?
     
  10. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    die rechte passen auch, aber ich habs schon selbst gelöst :)

    und zwar habe ich in der mysql tabelle db für den user den ich verwende den eintrag so geändert, das er von allen hosts auf die DB kommt (also in das feld host % eintragen).

    in der tabelle user steht weiterhin localhost für den user, dadurch ist gewährleistet, das er tatsächlich trotzdem nur vom localhost connecten kann.

    wieso das so ist kann ich auch nicht sagen.

    mfg,
    michael
     
  11. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    zufrüh gefreut :-(

    er kann sich zwar offensichtlich connecten, aber ich kann den user trotzdem nicht registern.

    ein sip show users zeigt auch keine einträge.

    im logfile steht das er die sip.conf nicht laden kann, was aber nicht weiter schlimm sein sollte.

    wieso nimmt er die konfig nicht aus der DB?

    nach dem start der CLI sagt er auch brav:

    Code:
      == Binding sipusers to mysql/asterisk/sip_buddies
      == Binding sippeers to mysql/asterisk/sip_buddies
    
    irgendwelche ideen?

    mfg,
    michael
     
  12. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Das ist normal. Wenn Du die Einträge nicht in der sip.conf in den Cache übernimmst
    Code:
    [general]
    rtcachefriends=yes
    rtautoclear=yes
    
    dann wirst Du sie nie sehen - wie auch, wenn sie ja nur REALTIME vorhanden sein sollen.

    Auf die sip.conf kannst Du jedenfalls nicht verzichten - zumindest habe ich es bisher nicht geschafft, ohne diese Datei ein ordnungsgemäßes Funktionieren zu bewerkstelligen.
     
  13. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn du in der Tabelle sip_buddies einen User eingetragen hast, dann versuch dich mal damit zu connecten...
     
  14. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ok, ich habe jetzt die sip.conf wieder aktiviert, allerdings ohne user.

    in der sip_buddies hab ich einen user eingetragen klar.

    wenn ich in der CLI dial 1000@intern mache, dann bekomme ich folgende fehlermeldung:

    Code:
     << Console call has been answered >>
        -- Executing Dial("OSS/dsp", "SIP/1000|20||") in new stack
    Dec  6 14:51:45 NOTICE[5141]: app_dial.c:1011 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)
      == Everyone is busy/congested at this time (1:0/0/1)
      == Auto fallthrough, channel 'OSS/dsp' status is 'CHANUNAVAIL'
      == Console is full duplex
     << Hangup on console >>
    
    irgendwie bekommt er den user nicht aus der DB heraus....

    wieso steht da aber nirgendwo eine fehlermeldung?

    mfg,
    michael