Asterisk als IP-Telefonanlage einsetzen
Professionelle Hilfe zu Asterisk gibt es hier:
Ich werde die Asterisk-Sektion in Unterbereiche aufteilen, hier habe ich schonmal damit angefangen, weitere folgen. Bis alles umgebaut ist, gibt es den Rest auf der Seite hier ohne Unterbereiche.
Ein guter Start (in englischer Sprache) zur Einrichtung von Asterisk ist hier:
http://www.voip-info.org/tiki-index.php?page=Asterisk
Das aktuelle Changelog findet sich hier:
ftp://ftp.asterisk.org/pub/asterisk/ChangeLog
compilieren
extensions - Nebenstellen einrichten
IAX-Verbindung
AbgehendeRufnummerFestlegen
WakeupCalls - Automatische Anrufe von Asterisk
Faxempfang
Applications
Toene - Deutsche Signalisierung unter Asterisk
Funktionen
Pickup - Anrufe per Pickup von anderem Apparat holen
RealTime - Konfiguration aus einer Datenbank heraus
VoiceMail - Konfiguration der Voiceboxen (Realtime,
MySQL?)
Meetme - Konferenzen unter Asterisk
Meetme2 - Erweiterte Konferenzen unter Asterisk mit
MeetMe2?
H323 - Manche Provider mögen lieber noch das alte H.323-Protokoll
TE410P - 4-fach PMX Karte (120 Kanäle)
BriStuff - HFC-Karten mit Bristuff installieren
Clusterisk - Asterisk im Cluster
AGI - Eigene Skripte oder Programme in Asterisk
astcc - Prepaid-Billing für Useraccounts
Lastverhalten - Wieviele User können gleichzeitig telefonieren?
ManagerAPI - Manager-Interface
ServerUeberwachung - Einfache gegenseitige Überwachung von Asterisk-Servern
SoundKonvertierung - Konvertieren von
MP3? oder WAV zu GSM für Asterisk
Fehlersuche - Wenn mal etwas nicht funktioniert
Live-CDs? von Asterisk
Unter
http://www.automated.it/asterisk gibt es eine von CD bootbare Version von Asterisk inkl. Betriebssystem (Red-Hat Linux). Da auf der fertigen CD keine Konfigurationsdaten gespeichert werden können, holt sich Asterisk diese von einem USB-Stick. Keine schlechte Idee, denn ein Austausch defekter Hardware dauert hier nur noch Sekunden. Die CD ist immer gleich, da dort keine Konfigurationsdaten gespeichert werden, somit ist auch ein Update der Asterisk-Version simpel: Neue CD einlegen und wenn das nicht gefällt, die alte CD rein, botten, fertig. Es gibt auch eine Version, die nur auf einem USB-Stick (oder CF-Karte) läuft. Ich kann mich derzeit noch nicht ganz damit anfreunden, da die Daten dort, im Gegensatz zu einer gebrannten CD veränderbar sind. Meiner Ansicht nach sollten nur die Konfigurationsdaten änderbar sein. Da ohnehin in kurzen Abständen neue Versionen von Asterisk erscheinen, plädiere ich doch ziemlich stark für die Live-CD-Lösung.
Noch eine Live-CD:
http://asteriskathome.sourceforge.net
Geschafft
...bin ich doch ein wenig, nachdem die Beispielkonfiguration für diese Software-Telefonanlage für Linux-Rechner doch etwas zu gross ausgefallen war und ich mir meine Bestandteile dann doch eher von anderen Webseiten zusammensuchen musste.
Jetzt funktioniert sie, d.h. ich bin von einem ganz normalen Festnetztelefon (oder auch Handy oder wie auch immer) unter der 0211-58007207 erreichbar. Da das aber Geld kostet und die Internet-Telefonie erst richtig Spass macht, wenn dem nicht mehr so ist, bin ich auch über Sipgate und Nikotel erreichbar (siehe
http://voice.rowi.net). Per Sipgate (
http://www.sipgate.de) bin ich auch über o.g. Nummer im IP-Netz erreichbar.
Die Konfiguration von Asterisk war letztlich doch simpler, als ich Anfangs gedacht hatte. Man muss einfach das Konzept verstehen, dann klappt das auch. Kleinigkeiten wie folgender Eintrag haben mich etwas Mühe gekostet:
_callerid="Rolf <4242>"_
Wo ist das Problem? Nun, mit den Anführungszeichen kommt Asterisk überhaupt nicht klar, also muss der Eintrag so heissen:
_callerid=Rolf <4242>_
Leichte Lösung, wenn man es denn erkennt.
Ich werde später mehr berichten über Mailboxen, Gateways usw. Derzeit bin ich einfach nur froh, dass ich mittlerweile Sipgate wie auch Nikotel nutzen kann (kommend wie auch gehend, soweit es das Guthaben zulässt ;-)).
Asterisk und Debian
Von einer Webseite:
Getting started
I recently started playing around with asterisk. It has gotten pretty mature since the project started, the only problem is, that the configuration and documentation has to be collected at various places. There is a draft of version 2 of the handbook, but that was not as fullfilling, as i would have wanted.
I started out with the available Debian version in unstable (Sid) and installed that. It has some bugs though, that have to be fixed first.
* The directory for the cdr-cvs logfile it not created. You will have to do that manually.
mkdir /var/log/asterisk/cdr-cvs
chown asterisk.asterisk /var/log/asterisk/cdr-cvs
* Also some of the symlinks in the Debian package are broken. Replace that with the correct one.
ln -sf /var/spool/asterisk/voicemail/default /var/spool/asterisk/vm
ln -sf /var/spool/asterisk/vm /usr/share/asterisk/sounds/vm
ln -sf /var/spool/asterisk/voicemail /usr/share/asterisk/sounds/voicemail
If you want to play around with some cvs-snapshots, then you can add the following Debian repositories:
deb ftp://debian.marlow.dk/ sid asterisk
deb-src ftp://debian.marlow.dk/ sid asterisk
Asterisk Allgemein
Mit _asterisk -r_ kommt man in die Kommandozeile.
Links:
Konfiguration
Bei der Debian-Distribution sind einige Einstellungen falsch, die korrigiert werden müssen:
http://www.marlow.dk/tech/asterisk.php?noframe=yes
Beispielkonfigurationen:
Notwendige Konfiguration für Sipgate in /etc/asterisk/sip.conf
Asterisk Konfiguration
Die technischen Daten der sip.conf:
register => 800XXXX:sipgatepasswort@sipgate.de/800XXXX
[sipgate]
type=friend
username=800XXXX
secret=sipgatepasswort
host=sipgate.de
fromuser=800XXXX
fromdomain=sipgate.net
nat=yes
;dtmfband=inband
context=incomingsipgate
canreinvite=no
Aus der extensions.conf :
[incomingsipgate]
exten => h,1,Hangup
exten => 800XXXX,1,Dial(SIP/internestelefon,20,tr)
[sipgate]
exten => _9.,1,Dial(SIP/${EXTEN:1}@sipgate,30,tr)
exten => _9.,2,Playback(invalid)
exten => _9.,3,Hangup
Features in Asterisk einrichten
Ist die erste Hürde mal geschafft, dann geht es darum, schöne Dinge mit Asterisk zu machen. Diese werden hier beschrieben.
Wartemusik (Music on hold)
Wartemusik kann folgendermassen eingerichtet werden.
(ich habe die unstable genommen, Version 0.53-15.
MPG123? ist zum Abspielen notwendig.)
- In das Verzeichnis /var/lib/mohmp3/ einige (freie!) MP3?-Stücke kopieren.
- In /etc/asterisk/musiconhold.conf zumindest die default-Zeile auskommentieren (Semikolon wegmachen).
- /etc/init.d/asterisk restart
Fertig :-)
Deutsche Ansagen
Bislang hat das noch nicht bei mir geklappt, aber hier schonmal der Link zu den Soundfiles...
Anmerkung: Es gibt unter
freie deutsche Prompts. Mit der Version 1.0 gab es noch kleinere Probleme, siehe z.B.
Die Version 2.0 ist aber vollständig (und ebenfalss frei!). Einfach in /pfad/zu/asterisk/sounds/de auspacken und in den confs language=de eintragen (in der sip.conf z.B. unter [general]).
ISDN an Asterisk anschliessen (IP-PSTN-Gateway)
Am besten vergisst man wohl isdn4linux dabei und bedient sich des chan_capi von
http://www.junghanns.net.
(Derzeit keine weiteren Infos hierzu - Tests laufen...)
IAX-Verbindung zwischen zwei Asterisk-Servern
The following is a simple one-way setup that should work:
----------
ServerA?:
extensions.conf
[some-context]
exten => some-extension,1,Dial(IAX2/userid:password@192.168.1.250/extension@acontext)
ServerB?:
iax.conf
[userid]
type=user
secret=password
context=acontext
extensions.conf
[acontext]
exten => extension,1,Dial(wherever)
----------
You can make the dial string more concise by putting a peer section in
the iax.conf for
ServerA?:
----------
ServerA?:
iax.conf
[identifier]
type=peer
username=userid
secret=password
peercontext=acontext
host=192.168.1.250
extensions.conf
[some-context]
exten => some-extension,1,Dial(IAX2/identifier/extension)
ServerB?:
same as previous example.
----------
However, it is only in recent CVS versions (from 1.175 of chan_iax2.c on
2004/07/30) that it picks up the username as userid from the [identifier]
section. In older versions it is still necessary to say
Dial(
IAX2/userid@identifier/extension). In fact, when experimenting I also
found it necessary to say extension@acontext, even when peercontext= was
set. I haven't yet fully investigated why.
If
ServerB? is on a dynamic IP address, then host=192.168.1.250 must be
replaced with host=dynamic. It is then necessary for
ServerB? to register
with
ServerA? by including the following in
ServerB?'s iax.conf:
[general]
register => identifier:password@123.123.123.123
where 123.123.123.123 is the IP address or hostname of
ServerA?. Note that
it is identifier:password, not userid:password. I've deliberately kept
the various names different to show which is dependent on which. That's
also why I have keep peer and user separate instead of using type=friend.
Bi-directional peering can be set up by swapping the above sections for
ServerA? and
ServerB?, changing names accordingly. With suitable choices of
names, and the same secret in both directions, it is then possible to
combine type=peer and type=user sections into a single type=friend, e.g.
----------
ServerA? (static IP):
iax.conf
[serverB]
type=friend
host=dynamic
username=serverA
secret=password
peercontext=from-serverA
context=from-serverB
qualify=yes
notransfer=yes
extensions.conf
[outgoing-to-B]
;exten => outextenB,1,Dial(IAX2/serverA@serverB/extenB@from-serverA)
exten => outextenB,1,Dial(IAX2/serverB/extenB)
[from-serverB]
exten => extenA,1,Dial(wherever-on-A)
ServerB? (dynamic IP):
iax.conf
[general]
register => serverB:password@serverA.name.or.ip
[serverA]
type=friend
host=serverA.name.or.ip
username=serverB
secret=password
peercontext=from-serverB
context=from-serverA
qualify=yes
notransfer=yes
extensions.conf
[outgoing-to-A]
;exten => outextenA,1,Dial(IAX2/serverB@serverA/extenA@from-serverB)
exten => outextenA,1,Dial(IAX2/serverA/extenA)
[from-serverA]
exten => extenB,1,Dial(wherever-on-B)
----------
As I said, it ought to be possible to omit the context from the
IAX2
Dial commands if peercontext= is specified. I will investigate further.
Hope this all helps!
Cheers
Tony (softins)
Links:
(4-Port card Sirrix.PCI4S0? with Asterisk support)