Asterisk: Die mächtigste Nebenstellenanlage der Welt: Unterschied zwischen den Versionen

Aus NOBAQ
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: s)
 
Zeile 1: Zeile 1:
s
+
<section begin="head"/>
 +
Jetzt war ich lange Zeit zu faul, irgendwas zu schreiben, nun will ich einige nette HOWTO's rund um Asterisk zusammenfassen, die mir so einfallen. Immerhin beschäftige ich mich nun schon fast 4 Monate mit Asterisk!
 +
Den Anfang nahm es, als ich wieder mal Probleme hatte, per PPTP (*würg*) VPN ins Netz meiner Firma zu kommen. Ich bin draufgekommen, dass mein Elsa Lancom 800 Office ISDN Router einfach kein GRE routet. Also werde ich einmal eine neue Firmware ausprobieren. Dazu muss ich die Lancom Software installieren und weil ich gerade dabei bin, kann ich das LanCAPI doch auch gleich mit installieren! Bemerkung zum VPN: Die neue Firmwareversion hat GRE weitergeleitet und ich war glücklich. Allerdings war es mit LanCAPI nun möglich, das ISDN Interface so zu verwenden, als hätte man eine ISDN Karte eingebaut am lokalen PC über LAN! Mit einem Programm namens "Phoner" hab ich vor langer Zeit bereits telephoniert. Das habe ich wieder installiert.
 +
Nun wäre es schön, wenn ich so einen Anruf auf das interne Telephon (natürlich am gleichen S0-Bus) einfach weiterleiten könnte. Das geht ohne PBX leider nicht, aber zur Not würde es das ISDN Leistungsmerkmal "TP", Terminal Portability, auch "Parken" tun. Genau das war aber leider nicht in LanCAPI implementiert. Und genau hier kam Asterisk ins Spiel (zu dem ich voriges Jahr bereits einen Vortrag gehört habe)...
 +
<section end="head"/>
 +
 
 +
 
 +
== Die erste Installation ==
 +
 
 +
Ich dachte mir, ich könnte einfach in meinen Server eine Fritz! Card einbauen, ein Asterisk drauf und damit über ein Softphone telephonieren. Und nachdem man sagt, Asterisk kann eh alles, wird es wohl TP auch können!
 +
Ich stellte meinen ersten Post in ein Asterisk-Forum, schilderte mein Problem und die Antwort war: Mit Asterisk geht alles :-)
 +
Gesagt getan, Asterisk installiert. Natürlich brauchte es eine Zeit, bis ich das System durchschaut habe und mich immer wieder gefragt habe: “Das ist alles das große Asterisk? In Wirklichkeit geht doch gar nix mit dem”. Naja, richtig war, dass weniges von dem, was ich mir vorstellte ging, aber das hat nicht an Asterisk gelegen, sondern am System (z.B. Nebenstellen auswerten bei DID).
 +
Und ich musste auch erstmal feststellen, dass Fritz! mit Asterisk erstmal gar nichts zu tun hatte, sondern mit chan_capi. Und genau dieses hatte TP auch nicht implementiert!
 +
 
 +
 
 +
== Der chan-capi-cm-tp-patch ==
 +
 
 +
 
 +
Im Gegensatz zu LanCAPI hatte ich zu chan_capi wenigstens den Sourcecode und begann zu werkeln, TP in chan-capi-cm einzubauen. Offenbar brauchte das niemand (warum, hab ich erst nachher festgestellt), denn nirgends war was dazu zu finden.
 +
Nach etwa 5 Tagen war das große Werk vollbracht und Gespräche sollten geparkt werden können. Was für ein Erfolgserlebnis!
 +
Doch dieses wurde durch die verdammte Telekom Austria getrübt. Denn TP funktionierte nicht. Erst danach hab ichs mit normalen ISDN Telephonen ausprobiert und musste feststellen: TP ist nicht freigeschaltet!
 +
Mein eigener chan-capi-Patch lieferte folgende Meldung:
 +
 
 +
> CAPI INFO 0x34b2: Requested facility not subscribed
 +
 
 +
Übersetzen dürft ihr! Die Post hat es leider nicht gekonnt! Sie hat sich geweigert diese Tatsache anzuerkennen und stock und steif behauptet, es wäre freigeschalten. Die wochenlangen Agressionen gegen diesen stupiden Telekomverein haben sicher noch einige mitbekommen. Aber es half nix. Die Idtionen auf der tollen “Service”-Hotline stellten sich trotz mehrmaliger, stundenlanger Gespräche dumm. Ich war fast schon soweit, den Anschluss komplett zu kündigen.
 +
 
 +
Nachdem es eh nichts half, war es egal, ob es LanCAPI konnte oder nicht oder ob es chan_capi konnte oder nicht. Eine für Schwierigkeiten bekannte Firma hätte es sowieso nicht ermöglicht.
 +
Ausserdem wäre die Sache mit TP komplett schwierig und unhandlich gewesen (kein Klingeln, zuerst Parken, dann Entparken mit Parkcode etc).
 +
 
 +
Mein Patch liegt also brach, falls wer Interesse dran hat, bitte Kontakt aufnehmen! Er ist nicht vollständig fertig!
 +
 
 +
Nachdem ich jetzt aber schon Asterisk hatte, blieb Asterisk und es machte mir Spass
 +
 
 +
 
 +
== CAPI mit Fritz! und Rauswahl ins Telekomnetz ==
 +
 
 +
 
 +
Wie bereits beschrieben, wähle ich mich per CAPI und Fritz! raus. Ich mag hier nicht allzuviel schreiben, falls es Fragen gibt einfach melden!
 +
Die erfolgreiche Einrichtung hat trotzdem eine Woche und auch mehr gedauert, aus diesem Grunde die Einstellungen und die Konfiguration, falls wer die gleiche hat.
 +
 
 +
Telekom Austria ISDN Basisanschluss (leider!)
 +
 
 +
die /etc/asterisk/capi.conf sieht so aus:
 +
 
 +
[general]
 +
nationalprefix=0
 +
internationalprefix=00
 +
rxgain=0.8
 +
txgain=0.8
 +
language=de      ;set default language
 +
;ulaw=yes        ;set this, if you live in u-law world instead of a-law
 +
; interface sections ...
 +
 +
[ISDN1]          ;this example interface gets name 'ISDN1' and may be any
 +
;name not starting with 'g' or 'contr'.
 +
;ntmode=no      ;if isdn card operates in nt mode, set this to yes
 +
isdnmode=msn    ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
 +
;when using NT-mode, 'DID' should be set in any case
 +
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any
 +
;defaultcid=123  ;set a default caller id to that interface for dial-out,
 +
;this caller id will be used when dial option 'd' is set.
 +
;controller=0    ;ISDN4BSD default
 +
;controller=7    ;ISDN4BSD USB default
 +
controller=1    ;capi controller number to use
 +
group=1          ;dialout group
 +
;prefix=0        ;set a prefix to calling number on incoming calls
 +
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
 +
relaxdtmf=on    ;in addition to softdtmf, you can use relaxed dtmf detection
 +
accountcode=    ;Asterisk accountcode to use in CDRs
 +
context=capi-in  ;context for incoming calls
 +
holdtype=local  ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
 +
;set to 'local' (default value), no hold is done and Asterisk may
 +
;play MOH.
 +
immediate=yes  ;DID: immediate start of pbx with extension 's' if no digits were
 +
;    received on incoming call (no destination number yet)
 +
;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
 +
;    info like REDIRECTINGNUMBER may be lost, but this is necessary for
 +
;    drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
 +
echosquelch=1  ;_VERY_PRIMITIVE_ echo suppression
 +
echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation
 +
;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
 +
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
 +
;echotail=64    ;echo cancel tail setting
 +
;bridge=yes      ;native bridging (CAPI line interconnect) if available
 +
;callgroup=1    ;Asterisk call group
 +
;language=de    ;set language for this device (overwrites default language)
 +
devices=2        ;number of concurrent calls on this controller
 +
;(2 makes sense for single BRI, 30 for PRI)
 +
 
 +
 
 +
== Internes SIP Telephon ==
 +
 
 +
 
 +
Längere Zeit hab ich mit Softphones gearbeitet, aber dann hab ich mir zu einem Schnäppchenpreis auf ebay einen ATA Gekauft: Grandstream HandyTone 286. Diesen hab ich in meinen elektrischen Schreibtisch eingebaut (siehe voriger Post), der nun eine normale TAE-Dose bereitstellt :) An dieser hängt ein ganz normales, analoges, billiges Telephon.
 +
 
 +
 
 +
== Interner S0-Bus ==
 +
 
 +
 
 +
Nun fehlt aber noch die Möglichkeit, Telephonate weiterzureichen. Aus diesem Grund hab ich mir eine HFC-S Karte zugelegt und einen internen S0-Bus gebastelt. Über strukturierte Verkabelung endet nun eine CAT5 Leitung am Patchpanel im Serverraum im 19"-Schrank. Dort ist die Verbindung zum Telephon über einen Terminaladapter an einem internen NTBA und an der HFC Karte verbunden. Das Telephon ist über ein Modularkabel ganz normal an einer CAT5 Dose angeschlossen. Da gleich daneben die externe S0-Bus Dose ist, ist Fallback leicht möglich, man braucht nur umpatchen!
 +
 
 +
An diesen internen S0-Bus ist zusätzlich ein anderes normales ISDN Telephon angeschlossen.
 +
 
 +
 
 +
== Echoprobleme ==
 +
 
 +
 
 +
Die echo-Probleme bekam ich nach langem hin&her so weg, indem ich alles, was mit Echo-Cancellation zu tun hatte, in chan_zap entfernte und den in chan_capi aktivierte.
 +
 
 +
 
 +
== Interrupt-Probleme ==
 +
 
 +
 
 +
Die HFC-S-Karte hat leider eine gewaltige Interruptlast von 8kHz! Dank Frank Gockels Patch konnte ich dieses Problem auch beheben, beschrieben in
 +
 
 +
http://www.ip-phone-forum.de/showthread.php?t=113781
 +
 
 +
 
 +
== Weiteres ==
 +
 
 +
 
 +
In 4 Monaten intensiver Beschäftigung mit Asterisk hab ich tonnenweise nette Gimmicks eingebaut, die mit einer herkömmlichen PBX nie möglich wären. Ich habe eigene AGI-Scripts geschrieben, die selektiv bestimmte Telephone läuten lassen, die CID-Lookup machen etc. Weitere Sachen die ich eingebaut habe beinhalten ua: Faxe senden mit afaxd, Faxe empfangen auf der zweiten ISDN mit automatischer Faxerkennung, Weiterreichen der Anrufe, Anrufbeantworter, selektive Rauswahl, Kurzwahlen, Aufnehmen von Gesprächen uvm.
 +
Bin zu faul das ganze jetzt zu enumerieren, aber wenn jemand Interesse daran hat einfach kontaktieren.
 +
 
 +
[[Kategorie:Weblog]]

Version vom 31. Jänner 2008, 18:21 Uhr

Jetzt war ich lange Zeit zu faul, irgendwas zu schreiben, nun will ich einige nette HOWTO's rund um Asterisk zusammenfassen, die mir so einfallen. Immerhin beschäftige ich mich nun schon fast 4 Monate mit Asterisk! Den Anfang nahm es, als ich wieder mal Probleme hatte, per PPTP (*würg*) VPN ins Netz meiner Firma zu kommen. Ich bin draufgekommen, dass mein Elsa Lancom 800 Office ISDN Router einfach kein GRE routet. Also werde ich einmal eine neue Firmware ausprobieren. Dazu muss ich die Lancom Software installieren und weil ich gerade dabei bin, kann ich das LanCAPI doch auch gleich mit installieren! Bemerkung zum VPN: Die neue Firmwareversion hat GRE weitergeleitet und ich war glücklich. Allerdings war es mit LanCAPI nun möglich, das ISDN Interface so zu verwenden, als hätte man eine ISDN Karte eingebaut am lokalen PC über LAN! Mit einem Programm namens "Phoner" hab ich vor langer Zeit bereits telephoniert. Das habe ich wieder installiert. Nun wäre es schön, wenn ich so einen Anruf auf das interne Telephon (natürlich am gleichen S0-Bus) einfach weiterleiten könnte. Das geht ohne PBX leider nicht, aber zur Not würde es das ISDN Leistungsmerkmal "TP", Terminal Portability, auch "Parken" tun. Genau das war aber leider nicht in LanCAPI implementiert. Und genau hier kam Asterisk ins Spiel (zu dem ich voriges Jahr bereits einen Vortrag gehört habe)...


Die erste Installation

Ich dachte mir, ich könnte einfach in meinen Server eine Fritz! Card einbauen, ein Asterisk drauf und damit über ein Softphone telephonieren. Und nachdem man sagt, Asterisk kann eh alles, wird es wohl TP auch können! Ich stellte meinen ersten Post in ein Asterisk-Forum, schilderte mein Problem und die Antwort war: Mit Asterisk geht alles :-) Gesagt getan, Asterisk installiert. Natürlich brauchte es eine Zeit, bis ich das System durchschaut habe und mich immer wieder gefragt habe: “Das ist alles das große Asterisk? In Wirklichkeit geht doch gar nix mit dem”. Naja, richtig war, dass weniges von dem, was ich mir vorstellte ging, aber das hat nicht an Asterisk gelegen, sondern am System (z.B. Nebenstellen auswerten bei DID). Und ich musste auch erstmal feststellen, dass Fritz! mit Asterisk erstmal gar nichts zu tun hatte, sondern mit chan_capi. Und genau dieses hatte TP auch nicht implementiert!


Der chan-capi-cm-tp-patch

Im Gegensatz zu LanCAPI hatte ich zu chan_capi wenigstens den Sourcecode und begann zu werkeln, TP in chan-capi-cm einzubauen. Offenbar brauchte das niemand (warum, hab ich erst nachher festgestellt), denn nirgends war was dazu zu finden. Nach etwa 5 Tagen war das große Werk vollbracht und Gespräche sollten geparkt werden können. Was für ein Erfolgserlebnis! Doch dieses wurde durch die verdammte Telekom Austria getrübt. Denn TP funktionierte nicht. Erst danach hab ichs mit normalen ISDN Telephonen ausprobiert und musste feststellen: TP ist nicht freigeschaltet! Mein eigener chan-capi-Patch lieferte folgende Meldung:

> CAPI INFO 0x34b2: Requested facility not subscribed

Übersetzen dürft ihr! Die Post hat es leider nicht gekonnt! Sie hat sich geweigert diese Tatsache anzuerkennen und stock und steif behauptet, es wäre freigeschalten. Die wochenlangen Agressionen gegen diesen stupiden Telekomverein haben sicher noch einige mitbekommen. Aber es half nix. Die Idtionen auf der tollen “Service”-Hotline stellten sich trotz mehrmaliger, stundenlanger Gespräche dumm. Ich war fast schon soweit, den Anschluss komplett zu kündigen.

Nachdem es eh nichts half, war es egal, ob es LanCAPI konnte oder nicht oder ob es chan_capi konnte oder nicht. Eine für Schwierigkeiten bekannte Firma hätte es sowieso nicht ermöglicht. Ausserdem wäre die Sache mit TP komplett schwierig und unhandlich gewesen (kein Klingeln, zuerst Parken, dann Entparken mit Parkcode etc).

Mein Patch liegt also brach, falls wer Interesse dran hat, bitte Kontakt aufnehmen! Er ist nicht vollständig fertig!

Nachdem ich jetzt aber schon Asterisk hatte, blieb Asterisk und es machte mir Spass


CAPI mit Fritz! und Rauswahl ins Telekomnetz

Wie bereits beschrieben, wähle ich mich per CAPI und Fritz! raus. Ich mag hier nicht allzuviel schreiben, falls es Fragen gibt einfach melden! Die erfolgreiche Einrichtung hat trotzdem eine Woche und auch mehr gedauert, aus diesem Grunde die Einstellungen und die Konfiguration, falls wer die gleiche hat.

Telekom Austria ISDN Basisanschluss (leider!)

die /etc/asterisk/capi.conf sieht so aus:

[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
language=de      ;set default language
;ulaw=yes        ;set this, if you live in u-law world instead of a-law
; interface sections ...

[ISDN1]          ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
;ntmode=no       ;if isdn card operates in nt mode, set this to yes
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
;when using NT-mode, 'DID' should be set in any case
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123  ;set a default caller id to that interface for dial-out,
;this caller id will be used when dial option 'd' is set.
;controller=0    ;ISDN4BSD default
;controller=7    ;ISDN4BSD USB default
controller=1     ;capi controller number to use
group=1          ;dialout group
;prefix=0        ;set a prefix to calling number on incoming calls
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode=     ;Asterisk accountcode to use in CDRs
context=capi-in  ;context for incoming calls
holdtype=local   ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and Asterisk may
;play MOH.
immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
;     received on incoming call (no destination number yet)
;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
echosquelch=1   ;_VERY_PRIMITIVE_ echo suppression
echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation
;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64     ;echo cancel tail setting
;bridge=yes      ;native bridging (CAPI line interconnect) if available
;callgroup=1     ;Asterisk call group
;language=de     ;set language for this device (overwrites default language)
devices=2        ;number of concurrent calls on this controller
;(2 makes sense for single BRI, 30 for PRI)


Internes SIP Telephon

Längere Zeit hab ich mit Softphones gearbeitet, aber dann hab ich mir zu einem Schnäppchenpreis auf ebay einen ATA Gekauft: Grandstream HandyTone 286. Diesen hab ich in meinen elektrischen Schreibtisch eingebaut (siehe voriger Post), der nun eine normale TAE-Dose bereitstellt :) An dieser hängt ein ganz normales, analoges, billiges Telephon.


Interner S0-Bus

Nun fehlt aber noch die Möglichkeit, Telephonate weiterzureichen. Aus diesem Grund hab ich mir eine HFC-S Karte zugelegt und einen internen S0-Bus gebastelt. Über strukturierte Verkabelung endet nun eine CAT5 Leitung am Patchpanel im Serverraum im 19"-Schrank. Dort ist die Verbindung zum Telephon über einen Terminaladapter an einem internen NTBA und an der HFC Karte verbunden. Das Telephon ist über ein Modularkabel ganz normal an einer CAT5 Dose angeschlossen. Da gleich daneben die externe S0-Bus Dose ist, ist Fallback leicht möglich, man braucht nur umpatchen!

An diesen internen S0-Bus ist zusätzlich ein anderes normales ISDN Telephon angeschlossen.


Echoprobleme

Die echo-Probleme bekam ich nach langem hin&her so weg, indem ich alles, was mit Echo-Cancellation zu tun hatte, in chan_zap entfernte und den in chan_capi aktivierte.


Interrupt-Probleme

Die HFC-S-Karte hat leider eine gewaltige Interruptlast von 8kHz! Dank Frank Gockels Patch konnte ich dieses Problem auch beheben, beschrieben in

http://www.ip-phone-forum.de/showthread.php?t=113781


Weiteres

In 4 Monaten intensiver Beschäftigung mit Asterisk hab ich tonnenweise nette Gimmicks eingebaut, die mit einer herkömmlichen PBX nie möglich wären. Ich habe eigene AGI-Scripts geschrieben, die selektiv bestimmte Telephone läuten lassen, die CID-Lookup machen etc. Weitere Sachen die ich eingebaut habe beinhalten ua: Faxe senden mit afaxd, Faxe empfangen auf der zweiten ISDN mit automatischer Faxerkennung, Weiterreichen der Anrufe, Anrufbeantworter, selektive Rauswahl, Kurzwahlen, Aufnehmen von Gesprächen uvm. Bin zu faul das ganze jetzt zu enumerieren, aber wenn jemand Interesse daran hat einfach kontaktieren.