Realtime Konfig mit mysql greift nicht richtig

lipperreiher

Neuer User
Mitglied seit
25 Jan 2005
Beiträge
75
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

nachdem mein Asterisk Server so weit schon mal gut läuft (mit ISDN), habe ich mich zunächst daran begeben die CDR-Infos in eine mysql-DB schreiben zu lassen. Das klappt auch wunderbar.

Als nächster Schritt steht die Konfiguration via Realtime auf dem Programm.

Dazu habe ich in der mysql-DB in der DB "asterisk" eine Tabelle namens sip_buddies angelegt:

Code:
CREATE TABLE IF NOT EXISTS `sip_buddies` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(80) collate latin1_german2_ci NOT NULL default '',
  `host` varchar(31) collate latin1_german2_ci NOT NULL default '',
  `nat` varchar(5) collate latin1_german2_ci NOT NULL default 'no',
  `type` enum('user','peer','friend') collate latin1_german2_ci NOT NULL default 'friend',
  `accountcode` varchar(20) collate latin1_german2_ci default NULL,
  `amaflags` varchar(13) collate latin1_german2_ci default NULL,
  `call-limit` smallint(5) unsigned default NULL,
  `callgroup` varchar(10) collate latin1_german2_ci default NULL,
  `callerid` varchar(80) collate latin1_german2_ci default NULL,
  `cancallforward` char(3) collate latin1_german2_ci default 'yes',
  `canreinvite` char(3) collate latin1_german2_ci default 'yes',
  `context` varchar(80) collate latin1_german2_ci default NULL,
  `defaultip` varchar(15) collate latin1_german2_ci default NULL,
  `dtmfmode` varchar(7) collate latin1_german2_ci default NULL,
  `fromuser` varchar(80) collate latin1_german2_ci default NULL,
  `fromdomain` varchar(80) collate latin1_german2_ci default NULL,
  `insecure` varchar(4) collate latin1_german2_ci default NULL,
  `language` char(2) collate latin1_german2_ci default NULL,
  `mailbox` varchar(50) collate latin1_german2_ci default NULL,
  `md5secret` varchar(80) collate latin1_german2_ci default NULL,
  `deny` varchar(95) collate latin1_german2_ci default NULL,
  `permit` varchar(95) collate latin1_german2_ci default NULL,
  `mask` varchar(95) collate latin1_german2_ci default NULL,
  `musiconhold` varchar(100) collate latin1_german2_ci default NULL,
  `pickupgroup` varchar(10) collate latin1_german2_ci default NULL,
  `qualify` char(3) collate latin1_german2_ci default NULL,
  `regexten` varchar(80) collate latin1_german2_ci default NULL,
  `restrictcid` char(3) collate latin1_german2_ci default NULL,
  `rtptimeout` char(3) collate latin1_german2_ci default NULL,
  `rtpholdtimeout` char(3) collate latin1_german2_ci default NULL,
  `secret` varchar(80) collate latin1_german2_ci default NULL,
  `setvar` varchar(100) collate latin1_german2_ci default NULL,
  `disallow` varchar(100) collate latin1_german2_ci default 'all',
  `allow` varchar(100) collate latin1_german2_ci default 'g729;ilbc;gsm;ulaw;alaw',
  `fullcontact` varchar(80) collate latin1_german2_ci NOT NULL default '',
  `ipaddr` varchar(15) collate latin1_german2_ci NOT NULL default '',
  `port` smallint(5) unsigned NOT NULL default '0',
  `regserver` varchar(100) collate latin1_german2_ci default NULL,
  `regseconds` int(11) NOT NULL default '0',
  `lastms` int(11) NOT NULL default '0',
  `username` varchar(80) collate latin1_german2_ci NOT NULL default '',
  `defaultuser` varchar(80) collate latin1_german2_ci NOT NULL default '',
  `subscribecontext` varchar(80) collate latin1_german2_ci default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `name_2` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci ROW_FORMAT=DYNAMIC AUTO_INCREMENT=7 ;

In der Datei "extconfig.conf" habe ich die folgenden Zeilen angelegt:

Code:
[settings]
sipusers => mysql,asterisk,sip_buddies
sippeers => mysql,asterisk,sip_buddies

Auch die Datei "res_mysql.conf" habe ich entsprechend angepasst:

Code:
[general]
dbhost = localhost
dbname = asterisk
dbuser = asterisk
dbpass = meinPW
dbport = 3306
dbsock = /var/run/mysqld/mysqld.sock
Wenn ich die CLI starte, wird auch angezeigt, dass die SIP-Benutzer in der mysql-DB gesucht werden:

Code:
 == Parsing '/etc/asterisk/extconfig.conf': Found
  == Binding sipusers to mysql/asterisk/sip_buddies
  == Binding sippeers to mysql/asterisk/sip_buddies

Hier habe ich schon mal eine grundsätzliche Frage:

Ist eine Mischkonfiguration (sipusers werden in der sip.conf UND ZUSÄTZLICH in der mysql-DB definiert) möglich oder geht nur entweder oder??

Teilweise funktioniert das Registrieren der Benutzer, die ich in der mysql-DB angelegt habe, allerdings habe ich die merkwürdigsten Phänomene:
- obwohl registriert, kann man nicht angerufen werden
- man kann nicht raustelefonieren
- teilweise klappt das registrieren nicht

Was mich auch irritiert ist, dass obwohl die Registrierung von sipusern ,die in der mysql-DB definiert sind, funktioniert, kann ich in der CLI-Konsole mit "sip show users" nichts finden.
Ist das normal oder müssten auch die in der mysql-DB definierten Benutzer dort angezeigt werden?

Ich habe schon mächtig viel zu diesem Thema gegoogelt, aber eine vernünftige Anleitung habe ich nicht gefunden.
Das fängt schon mit den vielen unterschiedlichen Tabellenschematas an, die man zu "sipusers, sip_buddies" oder wie auch immer man die Tabelle nennt, findet.

Wenn irgendjemand eine Schritt für Schritt Anleitung dazu kennt, wäre ich sehr dankbar.

Oder vielleicht habe ich ja noch was Wesentliches vergessen in meiner Konfiguration?

Vielen Dank schon mal und viele Grüße

Olaf
 
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.