SearchWiki:
Freie IT-Beratung
 Rolf Winterscheidt
http://www.rowi.net

Main.SideBar (edit)

Rolf

||align=center ||||

Scirocco

Das Scirocco-Wiki ist nun unter: http://wiki.sciroccoforum.de

IP-Telefonie

SecondLife

Weitere Themen

Das Passwort zum Ändern von Seiten ist der Firmenname links neben dem Vogel, was auch gleichzeitig der Domainname ist.

Impressum: http://www.rowi.net
Recent Changes Printable View Page History Edit Page
(Nicht nur) Bei vielen Nebenstellen werden die Konfigurationsdateien sehr groß. Daher bietet es sich an, diese gleich in einer Datenbank abzubilden. So verschwinden z.B. sip.conf und extensions.conf in einer Datenbank (z.B. MySQL?).

Sollte es Probleme bei dem kompilieren der add-ons geben, ist vielleicht die libmysqlclient-dev nicht installiert:

  • apt-get install libmysqlclient14-dev

Ob das MySQL?-Modul korrekt eincompiliert ist, lässt sich nach einem restart von Asterisk mit "show modules" anzeigen und sollte so aussehen:

  • res_config_mysql.so MySQL? RealTime Configuration Driver 0

SIP-User in Tabelle anlegen

 mysql> select id,name,accountcode,callerid,canreinvite,context,dtmfmode,host,nat,secret,type,username from sipusers;
 +----+------+-------------+-----------+-------------+-----------+----------+---------+-----+--------+--------+----------+
 | id | name | accountcode | callerid  | canreinvite | context   | dtmfmode | host    | nat | secret | type   | username |
 +----+------+-------------+-----------+-------------+-----------+----------+---------+-----+--------+--------+----------+
 |  1 | 2001 | 2001        | unbekannt | yes         | sipphones | rfc2833  | dynamic |   1 | sUperPW| friend | 2001     |
 +----+------+-------------+-----------+-------------+-----------+----------+---------+-----+--------+--------+----------+

Statt "unbekannt" sollte in callerid besser etwas wie "Rolf <2001>" eingetragen werden.

res_mysql.conf

In dieser Datei müssen die Einstellungen gemacht werden, um Asterisk wissen zu lassen, auf welche Datenbank es zugreifen soll. Die Beispieldatei ist eigentlich selbsterklärend.

 ;
 ; Sample configuration for res_config_mysql.c
 ;
 ; The value of dbhost may be either a hostname or an IP  address.
 ; If dbhost is commented out or the string "localhost", a connection
 ; to the local host is assumed and dbsock is used instead of TCP/IP
 ; to connect to the server.
 ;
 [general]
 dbhost = localhost
 dbname = asterisk
 dbuser = asteriskuser
 dbpass = SuPERpassW0rt
 dbport = 3306
 dbsock = /var/run/mysqld/mysqld.sock

extconfig.conf

Diese Datei benötigt die Werte der Datenbank, d.h. Datenbankname, Tabelle und so weiter, damit die Kontexte darauf gemapped werden können.

 [settings]
 ; file.conf => driver,database[,table]
 ; User/Peer-Tabelle auf Tabelle sipusers mappen
 sipusers => mysql,asterisk,sipusers
 sippeers => mysql,asterisk,sipusers

 ; Extensions auf Tabelle sipuser_dialplan mappen
 sipuserdialplan => mysql,asterisk,sipuser_dialplan

extensions.conf

In der extensions.conf können statt der Kontexte die Verweise auf die Kontexte in der Datenbank abgelegt werden.

 [sipuserdialplan]
 switch => Realtime/@sipuserdialplan

Die zugehörige Tabelle sieht dann in der Struktur so aus:

 DROP TABLE IF EXISTS `sipuser_dialplan`;
 CREATE TABLE `sipuser_dialplan` (
  `context` varchar(20) NOT NULL default 'sipuserdialplan',
  `exten` varchar(64) NOT NULL default '',
  `priority` int(2) NOT NULL default '1',
  `app` varchar(20) NOT NULL default '',
  `appdata` varchar(255) default NULL,
  `descr` text,
  `flags` int(1) NOT NULL default '0',
  PRIMARY KEY  (`context`,`exten`,`priority`)
 );

Und so könnte ein Eintrag für einen User aussehen:
 +-----------------+-------+----------+------+----------------------------+-------+-------+
 | context         | exten | priority | app  | appdata                    | descr | flags |
 +-----------------+-------+----------+------+----------------------------+-------+-------+
 | sipuserdialplan | 2001  |        1 | Dial | SIP/2001@sip.rowi.net|90|r | NULL  |     0 |
 +-----------------+-------+----------+------+----------------------------+-------+-------+

Wird in appdata der Host weggelassen, also z.B. "SIP/2001|90", so wird der lokale Host genutzt. Ein "r" als Anhang dazu bewirkt einen Fake-Ring und sollte nicht genutzt werden!

Link hierzu: http://www.voip-info.org/wiki-Asterisk+RealTime+Extensions

Voicemail

 +----------+-------------+---------+---------+----------+--------------------+---------------+-------+--------+--------+-------------+----------------+
 | uniqueid | customer_id | context | mailbox | password | fullname           | email         | pager | attach | saycid | hidefromdir | stamp          |
 +----------+-------------+---------+---------+----------+--------------------+---------------+-------+--------+--------+-------------+----------------+
 |        2 |           0 | default |    2001 | 1234     | Rolf Winterscheidt | x@example.com |       | no     | no     | no          | 20050806201355 |
 +----------+-------------+---------+---------+----------+--------------------+---------------+-------+--------+--------+-------------+----------------+

Beispiel für das Einfügen eines Users in die Voicemail-Tabelle:
 insert into voicemail_users set context='default', mailbox='2001', password='1234', fullname='Rolf Winterscheidt', email='x@example.com', attach='no', saycid='no';

Folgendes bedeuten die Felder:

 uniqueid: Das ist eine ID, die hier nicht weiter relevant ist und selbsttätig von mysql gesetzt wird.
 customer_id: Es kann eine customer ID vergeben werden, die aber hier nicht genutzt wird und deren Sinn auch nicht klar ist.
 context: Das ist der Kontext, in dem die Voicebox läuft.
 mailbox: Sinnigerweise vergibt man die Nummer der Mailbox nach der SIP-Nummer.
 password: Ein numerisches Passwort.
 fullname: Sollte per Mail eine Benachrichtigung kommen, so wird dieser Name als Anrede verwendet.
 email: An diese Adresse wird ggfs. eine Benachrichtigungsmail gesendet.
 pager: Pagerdienste stehen derzeit nicht zur Verfügung.
 attach: Gibt an, ob an die Benachrichtigungsmail die Aufzeichung angehängt werden soll (WAV-Format).
 saycid: Wählt aus, ob beim Abhören der Nachrichten die Rufnummern der Anrufer aufgesagt werden soll (wird nervig).
 hidefromdir: - keine Ahnung -
 stamp: Zeitstempel des letzten Anrufs auf die Mailbox.

Links zur RealTime configuration:

Edit Page - Page History - Printable View - Recent Changes - WikiHelp - SearchWiki
Page last modified on September 07, 2005, at 10:52 AM