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

Datenbankanbindungsproblem :-(

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von thepontifex, 19 Mai 2005.

  1. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hi,

    ich versiche meinen Asterisk und eine MySQL DB zusammenzubringen. Habe dazu die RealTime Anleitung von voip-info.org durchgemacht. Hänge jetzt an der SIP Config. Ich habe eine Datenbank 'asterisk' auf dem MySQL Server 'localhost' mit einer Tabelle 'sip_users' und einer Tabelle 'sip_peers' (Die Tabellen haben die gleichen Felder und die gleichen Einträge)

    Da habe ich meine Felder angelegt wie ich sie früher in der sip.conf drin
    hatte.

    In der res_mysql.conf steht folgendes:
    Code:
    [general]
    dbhost = 127.0.0.1
    dbname = asterisk
    dbuser = asterisku
    dbpass = xxx
    dbport = 3306
    dbsock = /var/lib/mysql/mysql.sock
    
    Starte ich jetzt meinen Asterisk bekomme ich folgende Fehlermeldung:
    Code:
    *CLI> May 19 16:33:59 WARNING[4260]: res_config_mysql.c:129 realtime_mysql: MySQL RealTime: Failed to query database. Check debug for more info.
    May 19 16:33:59 NOTICE[4260]: chan_sip.c:9133 handle_request_register: Registration from '<sip:666@172.20.1.119;user=phone>' failed for '172.20.1.38'
    
    
    Was hab ich falsch gemacht :?:
    Und was ist den cdr_mysql? Ich lese das immer wieder und weiß nich was das is. Brauch ich das auch?

    Gruss
    Frank
     
  2. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hy,

    nachdem ich noch die 'sip_peers' Tabelle angelegt habe bekomm ich nicht mehr die Fehlermeldung dass sich die Geräte nicht registrieren können. Meldet sich aber ein Gerät ab bekomm ich folgenden Fehler:
    Code:
    *CLI>     -- SIP Seeding peer from astdb: '555' at 555@193.7.168.67:5060 for 1800
        -- Unregistered SIP '555'
    May 19 17:40:05 WARNING[4633]: res_config_mysql.c:323 update_mysql: MySQL RealTime: Failed to query database. Check debug for more info.
    
    Was läuft denn da falsch? Was für ein debug soll ich denn checken? Wo schreibselt er denn das debug-file? Ich blick langsam nimmer durch :-(

    Gruss
    Frank
     
  3. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Datenbankstruktur nicht wie Felder aus der sip.conf machen, sondern so: http://www.voip-info.org/wiki-Asterisk+RealTime+Sip
    Und dann am besten nur eine Tabelle, in der extconfig.conf dann sipuser und sippeer an die gleiche Tabelle binden. Wahrscheinlich kommt er bei Dir mit den gleichen Einträgen in beiden Tabellen nicht klar.
     
  4. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    OK die Tabelle heisst bei mir 'sip_users' und ich hab sie jetzt mit dem SQL Statement aus dem voip-wiki erstellt. Die Reihenfolge der Spalten ist egal, oder? Habe sie nämlich jetzt in der Reihenfolge wie ich meine Daten eintrage umgestellt.

    Gruss
    Frank
     
  5. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja die Reihenfolge ist egal. Falls Du mit 2 Tabellen weiter arbeitest setz das Feld "type" richtig.
     
  6. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hi,

    ich arbeite jetzt nur noch mir 1 Tabelle für die SIP und inzwischen auch IAX User/Geräte. Danke für den Tip! Die Geräte werden jetzt auch korrekt angesprochen :) Ein Erfolgserlebnis am Freitag morgen, sehr schön!!!

    Probiere gerade die Umstellung der extension.conf auf Realtime. Das funktioniert aber leider noch nicht :-( Habe die Tabelle 'extension_table' wie im voip-wiki erstellt und mal meine SIP Regeln für die 2 SIP-Telefone eingetragen:
    Code:
    id  context  	   exten   prio   app  	 appdata
    1 	manual-test1 	666 	1 	Answer 	 
    2 	manual-test1 	666 	2 	Dial 	SIP/666
    3 	manual-test1 	555 	1 	Answer 	 
    4 	manual-test1 	555 	2 	Dial 	SIP/555
    5 	manual-test1 	444 	1 	Answer 	 
    6 	manual-test1 	444 	2 	Dial 	IAX2/444
    
    Nun hab ich meiner extension.conf folgendes eingetragen:
    Code:
    [manual-test1]
    switch => Realtime/manual-test1@extension_table
    
    
    Habe ich was vergessen? Muss noch was in die extconfig.conf?
    Stimmt mein extension.conf Eintrag so?

    Gruss
    Frank
     
  7. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Du mußt diese "family" darin auf jeden Fall zuweisen - sonst wird gar nicht in der Datenbank gesucht.
     
  8. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ist der Eintrag in der extconfig.conf so richtig:
    Code:
    extensions => mysql,asterisk,extension_table
    
     
  9. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    muß ich mal heute abend zu Hause nachschauen, wie ich das gemacht habe. Aus dem Kopf kann ich Dir das jetzt nicht genau sagen.
     
  10. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    realtime_ext => mysql,asteriskconfig,extensions_table

    hierbei ist "asteriskconfig" der Name der Datenbank und "extensions_table" der Name der Tabelle.

    Ein Beispieleintrag in der Tabelle sieht bei mir so aus:
    Hier wird der Context "vmbox" erzeugt, den man über 80 erreichen kann.

    Code:
    id 	context 	exten 	priority 	app 	appdata
    1 	vmbox 	      80 	1 	Answer 	
    2 	vmbox 	      80 	2 	Wait 	1
    3 	vmbox 	      80 	3 	VoiceMailMain 	s${CALLERIDNUM}
    4 	vmbox 	      80 	4 	Hangup
    
    In der extensions.conf steht dazu folgendes:

    Code:
    [vmailbox]
    switch => Realtime/vmbox@realtime_ext
    
    Hierbei sit "vmbox" der Name des Contextes in der MySQL Tabelle und "realtime_ext" die Zuordnung aus der extconfig.conf

    Diesen Context "vmailbox" kann ich dann per "include => vmailbox" an beliebiger Stelle einbinden.

    Ich hoffe, das hilft Dir erstmal weiter.
     
  11. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    hi,

    hast auch schon nen Statement aus nem Kontext drin wo Du jemanden anrufst? Also das Gespräch zu nem SIP-Endgerät oder so?

    Könntest da einen Ausschnitt Deiner Konfig mal posten?

    Gruss
    **der immernoch im geschäft hockende**
    Frank
     
  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 würde ganz genauso aussehen:

    id context exten priority app appdata
    userrufen 55 1 Dial IAX2/55
    userrufen 55 2 Hangup
     
  13. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hi,

    jepp habs inzwischen auch hinbekommen! Sehr sehr geil!

    Vielen Dank für Deine Hilfe!

    Dann kann ich mich am Montag gleich an die Verfeinerung machen :)

    Schönes Wochenende!!!

    Gruss
    Frank
     
  14. thepontifex

    thepontifex Neuer User

    Registriert seit:
    2 März 2005
    Beiträge:
    141
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hi,

    habe jetzt schon wieder Probleme mit der Datenbank. Wi bring ich denn meine Voicemailboxen und die Datenbank zusammen?

    Hab eigentlich gedacht ich hätts jetzt kapiert:
    extconfig.conf:
    Code:
    sipusers => mysql,asterisk,sip_users          
    sippeers => mysql,asterisk,sip_users          
    iaxusers => mysql,asterisk,iax_users          
    iaxpeers => mysql,asterisk,iax_users          
    realtime_ext => mysql,asterisk,extension_table
    
    voicemail => mysql,asterisk,voicemail_users
    
    in der voicemail.conf muss ja laut voip-wiki nix rein, und die Tabelle für die Voicemailboxen sieht wie folgt aus:
    Code:
     id  customer_id  context  mailbox  password  fullname  email  pager  stamp          attach  saycid  hidefromdir
     1   666          6666     6666     0815      Frank     [email]x@x.de[/email]        20050524182908 yes     yes     no
     
    
    Ausgabe im Asterisk CLI:
    Code:
    
    -- Executing Answer("IAX2/444@172.20.1.175:4569-3", "")
        -- Executing Dial("IAX2/444@172.20.1.175:4569-3", "SIP/666|10")
        -- Called 666
        -- SIP/666-64a4 is ringing
        -- Nobody picked up in 10000 ms
        -- Executing VoiceMail("IAX2/444@172.20.1.175:4569-3", "u6666")
    May 25 11:02:04 WARNING[15368]: app_voicemail.c:2250 leave_voicemail: No entry in voicemail config file for '6666'
      == Auto fallthrough, channel 'IAX2/444@172.20.1.175:4569-3' status is 'NOANSWER'
        -- Hungup 'IAX2/444@172.20.1.175:4569-3'
    
    Was mach ich denn da nun wieder falsch?

    Gruss
    Frank