[Eisfair] Erfahrungsbericht Asterisk und Capi2Text ohne ISDN
Dirk Alberti
Howy-1 at gmx.de
Mi Dez 28 18:10:50 CET 2016
Hallo zusammen,
hier mal meine Erfahrungen bezüglich Nutzung von Capi2text mit Asterisk,
ohne ISDN.
Zuersteinmal ist dazu des direkte Bearbeiten der Asterisk-Konfigdateien
in '/etc/asterisk/' nötig und zumindest ein gewisses Verständnis von
deren Funtionsweise.
Mit dem Setupmenü des Asterisk-Paketes geht es nicht und es muss auch
der Parameter 'ASTERISK_CONFIG_USE' auf 'no' gesetzt sein, ansonsten
überschreibt ja das Setup alles wieder.
Das Herzstück von Asterisk ist die Datei
'/etc/asterisk/extensions.conf', welche den Dialplan enthält.
Hier habe ich am Ende der Liste diese Zeilen als 'macro-logging' eingefügt:
[macro-logging]
exten => s,1,NoOp(Macro logging)
exten => s,n,System(sudo /usr/sbin/capi2text.sh ${ARG1} ${ARG2} ${ARG3}
${ARG4} 0 2)
Alles was hinter 'exten =>' steht, muss in eine Zeile.
Dieses Macro wird im Dialplan im ankommenden Kontext aufgerufen, bei mir
z.B. [tkom-in] genannt. Im ankommenden Kontext stehen die Rufnummern,
auf welche bei ankommenden Anrufen "gehört" wird und was damit gemacht
wird.
Als Beispiel:
exten => 012345678,1,Dial(SIP/2001,60,rt)
Hört auf die ankommende Nummer 012345678 und wählt über SIP die in
sip.conf definierte Nebenstelle 2001 an bzw. leitet den Anruf dorthin.
Und vor dieser Zeile wird die Zeile eingefügt, welche das
'macro-logging' aufruft und diesem die Argumente für capi2text.sh
durchreicht.
exten =>
012345678,1,Macro(logging,${STRFTIME(${EPOCH},,%Y-%m-%d)},${STRFTIME(${EPOCH},,%H:%M:%S)},${CALLERID(num)},${EXTEN})
Natürlich muss dann die Nummerierung in der Zeile mit dem Dial-Befehl
entspechend geändert werden:
exten => 012345678,1,Dial... in exten => 012345678,n,Dial...
also entweder fortlaufend nummeriert oder einfach 'n'.
Um nun noch mit den verschiedenen Zugriffsrechten klarzukommen, ist es
nötig, eine Datei '/etc/sudoers.d/capi2text' zu erstellen mit folgendem
Inhalt:
asterisk 192.168.1.5 = (root) NOPASSWD: /usr/sbin/capi2text.sh
Hierbei ist die IP den jeweiligen Verhältnissen anzupassen, ob localhost
auch reicht, habe ich nicht probiert.
Das Paket Capi2Text muss hierfür nur installiert sein, aber nicht
aktiviert, was bei fehlendem CAPI ja wahrscheinlich sowieso scheitern würde.
Grundsätzlich funktioniert das schonmal so, man kann aber durch einfügen
weiterer Zeilen im Dialplan vor Aufruf des Macro die CALLERID so
umschreiben, dass Capi2Text die richtige Landeskennung bekommt, um die
Flagge zuzuordnen:
exten => 012345678,1,ExecIf($[ "${CALLERID(num):0:1}" = "+"
]?Set(CALLERID(num)=00${CALLERID(num):1}))
exten => 012345678,n,ExecIf($[ "${CALLERID(num):0:4}" = "0049"
]?Set(CALLERID(num)=0${CALLERID(num):4}))
Speziell bei Telekom-VOIP gibt es bei der mitgeteilten CALLERID eine
Besonderheit, die diese Vorgehensweise erfordert. Genaueres dazu müsste
ich auch erst wieder recherchieren.
Ich hoffe, dem einen oder anderen damit helfen zu können.
Gruß
Dirk
Mehr Informationen über die Mailingliste Eisfair