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

[gelöst] ast_data wie konfiguieren

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von Kasoft, 25 Okt. 2004.

  1. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich habe Ast_data einkompiliert und die data.conf sauber konfiguert. Asterisk startet auch ast_data und es kommen ast_data spezifische Ausgaben in der CLI . Aber ich schaffe es nicht neue User zu erstellen. Ich hab händisch einen
    User direkt in die SIPFriends geschrieben. Es funktioniert leider nicht.
    Hat mir jemand einen Tipp?

    MfG
    Kasoft
     
  2. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Was für eine Datenbank? Wie angebunden (ODBC oder direkt)? Zeig mal Deine data.conf und den Datenbankeintrag für den User.
     
  3. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Was sagt denn "show data handlers"?
     
  4. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich verwende MySQL direkt:

    Data.conf
    Code:
    [Global]
     SIPFriends = mysql
     IAXFriends = mysql
     ExtensionLookup = mysql
     VoiceMail = mysql
     Directory = mysql
     EndOfCall = mysql
    .
    .
    .
    [mysql]
     QType = Default
     Hostname = localhost
     DBName = asterisk
     User = xxx
     Password = xxx
    ; Port = 3306
    ; Sock = tmp/mysql.sock
     InitPoolSize = 3
     MaxPoolSize = 5
    
    Datenbank wurde generiert teils aus contrib/scripts teils aus ast_data Archiv (So wie es in der Anweisung steht)

    MfG
    KAsoft
     
  5. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Warum sind beide Zeilen ausgeklammert?
    ; Port = 3306
    ; Sock = tmp/mysql.sock

    "show data handlers" würde mich auch interessieren
     
  6. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Speedy,

    sobald ich die beiden auskommentiere versucht er über eine TCP/IP
    Verbindung sich zu verbinden. Das führt dann zu folgenden Fehlern:

    Code:
    Oct 26 07:23:56 ERROR[16384]: data_mysql.c:181 db_connect: ID1: Failed to connec
    t to mysql database asterisk@localhost. Error from DBEngine: Can't connect to lo
    cal MySQL server through socket 'tmp/mysql.sock' (2)
    Oct 26 07:23:56 ERROR[16384]: data_mysql.c:181 db_connect: ID2: Failed to connec
    t to mysql database asterisk@localhost. Error from DBEngine: Can't connect to lo
    cal MySQL server through socket 'tmp/mysql.sock' (2)
    Oct 26 07:23:56 ERROR[16384]: data_mysql.c:181 db_connect: ID3: Failed to connec
    t to mysql database asterisk@localhost. Error from DBEngine: Can't connect to lo
    cal MySQL server through socket 'tmp/mysql.sock' (2)
    
    show data handlers liefer das hier:
    Code:
    List of Data Resource Handlers:
      Handler(s) for SIP_FIND_PEER:
        'mysql' is registered (MySQL SIP Peer Lookup Handler)
      Handler(s) for SIP_FIND_USER:
        'mysql' is registered (MySQL SIP User Lookup Handler)
      Handler(s) for SIP_UPDATE_PEER:
        'mysql' is registered (MySQL SIP Peer Update Handler)
      Handler(s) for IAX_FIND_PEER:
        'mysql' is registered (MySQL IAX Peer Lookup Handler)
      Handler(s) for IAX_FIND_USER:
        'mysql' is registered (MySQL IAX User Lookup Handler)
      Handler(s) for IAX_UPDATE_PEER:
        'mysql' is registered (MySQL IAX Update Peer Handler)
      Handler(s) for EXTENSION_LOOKUP:
        'mysql' is registered (MySQL Extension Lookup Handler)
      Handler(s) for VM_FIND_USER:
        'mysql' is registered (MySQL Voicemail User Lookup Handler)
      Handler(s) for VM_CHANGE_PASSWORD:
        'mysql' is registered (MySQL Voicemail Password Change Handler)
      Handler(s) for VM_DIRECTORY:
        'mysql' is registered (MySQL Voicemail Directory Handler)
      Handler(s) for END_OF_CALL:
        'mysql' is registered (MySQL End of Call Handler)
    === End of List ===
    
    Für mich sieht es aus als wäre alles korrekt.

    MfG
    Kasoft
     
  7. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Bei "Sock = tmp/mysql.sock" muß natürlich der Pfad stimmen! Unter Debian muß es z.B. heißen: "Sock = /var/run/mysqld/mysqld.sock".

    show data handlers sieht ok aus.

    "show data mysql status" zeigt, ob bzw. wie oft er schon nach daten geschaut, gelesen und geschrieben hat:
    Code:
    pbx01*CLI> show data mysql status
    ==============================================================================
    Database: asterisk@localhost:3306
    Queries Handled:
         VM_DIRECTORY                            VM_RESET_PASSWORD    VM_CHANGE_PASSWORD                      VM_FIND_USER   EXTENSION_LOOKUP                        SIP_UPDATE_PEER  SIP_FIND_USER                           SIP_FIND_PEER
    ID      In/Out  Reads   Writes  Deletes Status
      1     In        1244     218       0  Connected 0 days, 08:25:05
      2     In           0       0       0  Connected 0 days, 08:25:05
      3     In           0       0       0  Connected 0 days, 08:25:05
    ==============================================================================
    und mit "database show" sollten die eingetragenen Clients aufgeführt sein:
    Code:
    [...]
    /SIP/Registry/100                                 : 10.0.0.200:5060:3600:100:sip:100@10.0.0.200
    /SIP/Registry/102                                 : 10.0.0.201:5060:300:102:sip:102@10.0.0.201:5060;transport=udp
    [...]
    Ein "sip show peers" zeigt nur die peers (clients) aus der sip.conf - die Clients aus der Datenbank lassen sich so nicht anzeigen.

    --EDIT--

    Hier noch ein Demo-Intert für einen Client mit der Nummer "100", Username "100", Passwort "passwort":
    Code:
    INSERT INTO sipfriends (name, secret, context, username, type, mailbox, nat, canreinvite, codecflags) VALUES ('100', 'passwort', 'default', '100', '3', '100', '0', '1', '8');
    codeflags=8 ist für den codec alaw.
     
  8. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Ber5erker,

    Oh man daran könnte es natürlich liegen... Ich hab andauernd versucht über sip show peers und sip show users versucht die Clients anzuzeigen.
    Ich werde auf jeden Fall heute Abend das kontrollieren.
    Aber trotz alledem wunderts mich warum ich mich trotz angelegter User
    nicht anmelden konnte. Aber kanns erst heute Abend kontrollieren.
    Werde dann Bescheid geben obs geklappt hat.

    MfG
    Kasoft
     
  9. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wie Ber5erker schon sagt, die Zeile mit "Sock = ..." muss schon korrekt sein. Ansonsten werden Standardwerte genommen, eben jene auskommentierte. Ansonsten kann ich noch "data debug" empfehlen, dann siehst Du welche Anfragen live an die Datenbank gehen.
     
  10. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    data debug liefert die Liveanfragen. Sprich mein Sip-User versucht sich
    anzumelden aber wird nicht reingelassen. Response bleibt immer leer:
    Code:
      == ==== Packet Dump ====
      == Query Type: SIP_FIND_PEER
      == (20)DataSource = (STR)"mysql"
      == (100)Name = (STR)"100"
      == (108)Password = (STR)"pass"
      == (110)Context = (STR)"default"
      == (101)Username = (STR)"100"
      == (120)IPAddress = (IP)0.0.0.0
      == (122)Port = (INT)0
      == (124)RegSeconds = (INT)0
      == (103)Mailbox = (STR)"100"
      == (125)NATFlag = (INT)0
      == (126)CanReinviteFlag = (INT)1
      == (118)AccountCode = (STR)""
      == (127)AMAFlags = (INT)0
      == (128)DTMFMode = (INT)1
      == (129)CallingPresence = (INT)0
      == (113)CallerIDName = (STR)""
      == (112)CallerIDNumber = (STR)""
      == (130)CodecFlags = (INT)8
      == (139)UserAgent = (STR)""
      == (109)MD5Password = (STR)""
      == (10)ErrorNumber = (INT)0
      == (11)ErrorMessage = (STR)"OK"
      == ==== End of Packet Dump ====
      == Request:
      == ==== Packet Dump ====
      == Query Type: SIP_FIND_PEER
      == (100)Name = (STR)"100"
      == ==== End of Packet Dump ====
      == Response:
      == ==== Packet Dump ====
      == Query Type: SIP_FIND_PEER
      == (20)DataSource = (STR)"mysql"
      == (100)Name = (STR)"100"
      == (108)Password = (STR)"pass"
      == (110)Context = (STR)"default"
      == (101)Username = (STR)"100"
      == (120)IPAddress = (IP)0.0.0.0
      == (122)Port = (INT)0
      == (124)RegSeconds = (INT)0
      == (103)Mailbox = (STR)"100"
      == (125)NATFlag = (INT)0
      == (126)CanReinviteFlag = (INT)1
      == (118)AccountCode = (STR)""
      == (127)AMAFlags = (INT)0
      == (128)DTMFMode = (INT)1
      == (129)CallingPresence = (INT)0
      == (113)CallerIDName = (STR)""
      == (112)CallerIDNumber = (STR)""
      == (130)CodecFlags = (INT)8
      == (139)UserAgent = (STR)""
      == (109)MD5Password = (STR)""
      == (10)ErrorNumber = (INT)0
      == (11)ErrorMessage = (STR)"OK"
      == ==== End of Packet Dump ====
      == Request:
      == ==== Packet Dump ====
      == Query Type: SIP_FIND_PEER
      == (100)Name = (STR)"100"
      == ==== End of Packet Dump ====
      == Response:
      == ==== Packet Dump ====
      == Query Type: SIP_FIND_PEER
      == (20)DataSource = (STR)"mysql"
      == (100)Name = (STR)"100"
      == (108)Password = (STR)"pass"
      == (110)Context = (STR)"default"
      == (101)Username = (STR)"100"
      == (120)IPAddress = (IP)0.0.0.0
      == (122)Port = (INT)0
      == (124)RegSeconds = (INT)0
      == (103)Mailbox = (STR)"100"
      == (125)NATFlag = (INT)0
      == (126)CanReinviteFlag = (INT)1
      == (118)AccountCode = (STR)""
      == (127)AMAFlags = (INT)0
      == (128)DTMFMode = (INT)1
      == (129)CallingPresence = (INT)0
      == (113)CallerIDName = (STR)""
      == (112)CallerIDNumber = (STR)""
      == (130)CodecFlags = (INT)8
      == (139)UserAgent = (STR)""
      == (109)MD5Password = (STR)""
      == (10)ErrorNumber = (INT)0
      == (11)ErrorMessage = (STR)"OK"
      == ==== End of Packet Dump ====
    
    Sock ist nun auch korrekt angegeben. Ich hab den Testuser
    von Ber5erker genommen.
    database show liefer mir überhaupt nichts zurück. Aber
    ich vermute mal der würde nur angemeldete Clients anzeigen oder irre ich
    mich da etwa??

    MfG
     
  11. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Was mir dabei einfällt muss ich denn ausser data.conf noch etwas anderes konfiguieren? Zum Beispiel sip.conf und iax.conf???
     
  12. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Richtig, database show liefert den Inhalt der Asterisk-internen Datenbank. Da sind die angemeldeten Clients drin (und die die schon mal angemeldet waren).

    Nein, wenn Du die Beispieldateien hast dann sollten die gehen.

    Da Deine Datenbankanbindung zu funktionieren scheint geh mal einen Schritt weiter. Mach mal ein "sip debug". Dann interessiert mich noch Dein Aufbau. Hat der Asterisk eine offizielle IP? Hat der Client eine offizielle IP, wenn nein nutzt Du einen STUN Server?
     
  13. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Speedy,

    Zum Aufbau:
    Ich habe einen vServer auf dem läuft immer die neuste CVS Asterisk. Meine
    CDRs habe ich in MySQL drin (asterisk-addons) .

    Der vServer hat eine eigene IP Adresse. Bisher habe ich alles über sip.conf
    und extension.conf gemanaged und das hat sehr gut funktioniert. Als Endgerät
    nutze ich die Fritz!Box Fon.
    Wie gesagt bisher hat das anmelden Telefonieren etc sauber funktioniert. Nur ast_data läuft nicht...

    SIP Debug bekommst du gleich sobald ich wieder an meinen Server kann.

    MfG
    Kasoft
     
  14. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0

    Da liegt wahrscheinlich der Hase begraben ... ich hab auf meinem Server auch einen Nutzer, der ein Grandstream hinter einer Fritz!Box betreibt. Ein tcpdump brachte das Problem zu Tage: Die Fritzbox macht symmetrisches NAT. Setz in der Datenbank das Feld "NAT" mal auf 5. Höchstwahrscheinlich gehts dann.
     
  15. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Speedy wenn das stimmt kriegst du erstmal'n dicken schmatzer :)

    Werds gleich mal testen...
     
  16. Kasoft

    Kasoft Neuer User

    Registriert seit:
    20 Aug. 2004
    Beiträge:
    168
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Speedy,

    wie Recht du hattest. Es lag wirklich an der Fritz!Box. Nachdem ich NAT auf
    symmetrisch gestellt hab hab ich sofort die FritzBox gefunden. Aber das mit
    dem Schmatzer lass ich sein da ich ja vielleicht in Zukunft Hilfe brauche und
    dich nicht vergraulen will :) Besten Dank nochmal

    MfG
    Kasoft
     
  17. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,
    Schön das es jetzt klappt. Diese Fritz!Box ist echt verflixt, ich hab 2-3 Tage gebraucht bis ich auf das symmetrische NAT und die Lösung dazu gekommen bin.
    Ja das mit dem Schmatzer lassen wir :eek:)
    Viel Erfolg dann mit der weiteren Einrichtung.