Archiv

Artikel Tagged ‘Asterisk’

Asterisk – Voicemail mit persönlicher Ansage

17. July 2010 TheMaster 2 Kommentare

Sodele, nachdem der Asteriskserver nun im Büro nun schon seit mehreren Monaten auch als Anrufbeantworter über die Voicemailfunktion agiert, habe ich dieses auch daheim endlich eingerichtet.

Einziges Problem war, dass mich die Standardansage – die nach der persönlichen Ansage ertönt – genervt hat. Dabei ist die Lösung so einfach.

Einfach im Voicemailaufruf in der extension.conf mit dem Parameter ’s’ sagen, dass diese ansage übersprungen (skipped) werden soll.

Das ganze sieht dann also so aus:

; Private Rufnummer
exten => 123465,1,Dial(SIP/201&SIP/222,30,otT)
exten => 123465,n,VoiceMail(123465,us)

Und schon wird 30 Sekunden lang versucht die Nebenstellen 201 und 222 anzurufen und dann auf die Voicemailbox für Nichterreichbarkeit (u[navaible]) weitgerleitet und das ohne nervige Ansage “Bitte sprechen Sie Ihren Ton nach…” (s[kipped]).

URL Aufruf im Asterisk zur Mitarbeiterzeiterfassung

20. June 2010 TheMaster 4 Kommentare

Für die Arbeitszeiterfassung wollen wir bei uns in Kürze die Telefonanlage missbrauchen. Damit sind wir Standortunabhängig und der Mitarbeiter kann morgens direkt als erstes seine Arbeitszeit erfassen, ohne erst den Computer hochzufahren.

Hierfür wird ein einfaches PHP Script auf einer intern verfügbaren Webseite benötigt und folgende Extension in der extensions.conf

exten => _*70.,1,Set(foo=${CURL(https://intranetwebpage/zeiterfassung.php?mitarbeiter=${EXTEN:3:4}&action=${EXTEN:7:1}&src=”${CALLERID(num)})})
exten => _*70.,n,Playback(de/vm-saved)
exten => _*70.,n,SayDigits(${EXTEN:3:4})
exten => _*70.,n,Hangup()

Damit wird automatisch das PHP Script zeiterfassung.php mit den Parametern mitarbeiter, action und src aufgerufen. Diese füllt Asterisk dann entsprechend mit Angaben aus der gewählten Rufnummer.

Beispiel

Gewählte Rufnummer *7012341

mitarbeiter (Ziffern 4-7): 1234
action (Ziffer 8): 1
src (ID-Rufnummer der Nebenstelle): 105

Als IP bekommt der Webserver die IP-Adress der TK-Anlage angezeigt. Das PHP Script dahinter ist dann simpel. Berechtigung prüfen, Status der Zeiterfassung prüfen und in Datenbank speichern.

FritzCard USB v.2.x unter Debian Lenny mit 2.6.26 Kernel

24. January 2010 TheMaster Keine Kommentare

Nachdem ich unseren kleinen LAN Server daheim durch einen gebrauchten PE750 ersetzt habe, musste ich – wieder mal – eine FritzCard zum laufen bringen. Weil Asterisk am ISDN Anschluss ohne ISDN Karte ist unschön.

Da der PE750 bereits beide PCI Slots belegt hat (DRAC + RAID) habe ich mir spontan bei eBay eine FritzCard USB v2 ersteigert. War net teuer und verrichtet seinen Dienst.

Aber – wie soll es auch anders bei einer FritzCard unter Debian Linux sein, will es mal wieder nicht.

Da sicherlich auch verschiedene andere vor diesem Problem hängen habe ich mal das eingesetzte Tutorial hierhin übernommen und um ein paar Korrekturen ergänt. Vielen Dank für die super Vorlage.

Als Voraussetzungen gilt hier: Ein funktionierendes Debian Lenny (32Bit).

1 Pakete installieren

Zuerst müssen wir ein paar notwendigen Pakete installieren, um den Kernel neu übersetzen zu können.

apt-get install linux-source-2.6.26 kernel-package fakeroot libncurses5 libncurses5-dev zlib1g zlib1g-dev isdnactivecards pppdcapiplugin module-assistant debhelper

2. Kernelsourcen entpacken

Zum Entpacken wechseln wir in das Verzeichnis mit den Sourcen:

cd /usr/src

entpacken die Kernelsourcen mit tar

tar -jxvf linux-source-2.6.26.tar.bz2

Es sollte nun ein Verzeichnis linux-source-2.6.26 vorhanden sein. Wir benötigen aber zusätzlich zu den kernel-Sourcen auch noch die entsprechende .config des aktuell laufenden Kernels. Diese kopieren wir uns mit

cp /boot/config-2.6.26-2-686 /usr/src/linux-source-2.6.26/.config

3 Nun benötigen wir noch die Sourcend des FritzCard USB Modules:

Wir befinden uns noch im Verzeichnis /usr/src, wo wir nun auch die gepatchten Fritz-Sourcen hin laden:

wget http://www.methfessel-computers.de/dowload/files/fcusb2-modules_0.8.0.tgz

Diese werden hierher entpackt:

tar -xf fcusb2-modules_0.8.0.tgz

4 Kernel Komplierung vorbereiten

Wir wechseln nun in das Kernel-Sourcen Verzeichnis

cd linux-source-2.6.26

Und erstellen dort ein Script welches und den Kernel übersetzt:

vi script.sh

In das Script fügen wir folgenden Text ein:

FLAVOUR=2.6.26-2-686-fcusb-mc
KERNPFAD=/usr/src/linux-source-2.6.26
DEBVERSION=$(cat $KERNPFAD/version.Debian | sed ’s/\-/\+/g’| sed ’s/\ /\+/g’)

fakeroot make-kpkg -append_to_version -${FLAVOUR} -revision ${DEBVERSION} -initrd kernel_image modules_image

5 Dann den Kernel komilieren

make-kpgk clean
sh script.sh

Nun können wir Kaffe gehen, die Freundin glücklich machen oder Mitarbeiter quälen. jeder wie es ihm beliebt. Das ganze dauert nun ca. 30 – 45 Minuten.

6 Kernel und wir sind fertig, installieren wir ihn

Nun ist es notwendig, dass wir sowohl den Kernel als auch das neue Kernel-Modul installieren.

dpkg -i linux-image-2.6.26-test_2.6.26+13lenny2_i386.deb
dpkg -i fcusb2-modules-2.6.26-test_0.8.0+2.6.26+13lenny2_i386.deb

Der Bootloader wird damit in der Regel gleich mit angepasst und wir können das System mit dem neuen Kernel starten

shutdown -r now

7 CAPI konfigurieren

Nach dem Reboot und Login als Root geht es weiter.

Aus dem Original AVM Treiber für die FritzCard USB benötigen wir noch zwei Dateien

Wir laden diese Datei herunter und kopieren diese dort heraus.

cd /usr/src
wget http://www.methfessel-computers.de/dowload/files/fcusb2-suse93-3.11-07.tar.gz
tar zxf fcusb2-suse93-3.11-07.tar.gz
cd fritz
cp fus2base.frm /usr/share/isdn/
cp fus3base.frm /usr/share/isdn/

Nun noch in der CAPI Konfiguration die Karte eintragen:

vi /etc/isdn/capi.conf

Dort folgenden Eintrag hinzufügen:

fcusb2          fus2base.frm    DSS1    -       -       -       -

fus2base.frm bei einer USB2.0 Karte, bei USB 1.1 muss hier die fus3base.frm eingetragen werden.

8 CAPI initialisieren

capiinit

Und schon gibt uns capiinfo was schönes aus:

Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.11-07  (49.23)
Serial Number: 0000000
BChannels: 2
Global Options: 0×00000039
internal controller supported
DTMF supported
Supplementary Services supported
channel allocation supported (leased lines)
B1 protocols support: 0×4000011f
64 kbit/s with HDLC framing
64 kbit/s bit-transparent operation
V.110 asynconous operation with start/stop byte framing
V.110 synconous operation with HDLC framing
T.30 modem for fax group 3
Modem asyncronous operation with start/stop byte framing
B2 protocols support: 0×00000b1b
ISO 7776 (X.75 SLP)
Transparent
LAPD with Q.921 for D channel X.25 (SAPI 16)
T.30 for fax group 3
ISO 7776 (X.75 SLP) with V.42bis compression
V.120 asyncronous mode
V.120 bit-transparent mode
B3 protocols support: 0×800000bf
Transparent
T.90NL, T.70NL, T.90
ISO 8208 (X.25 DTE-DTE)
X.25 DCE
T.30 for fax group 3
T.30 for fax group 3 with extensions
Modem

[...]

Viel Spaß damit und danke an Google und Freunde für die gute Hilfe

LAVOUR=”test”
KERNPFAD=”/usr/src/linux-source-2.6.26″
DEBVERSION=$(cat $KERNPFAD/version.Debian |\
sed ’s/\-/\+/g’| sed ’s/\ /\+/g’)

fakeroot make-kpkg –append_to_version -${FLAVOUR} \
–revision ${DEBVERSION} –initrd kernel_image modules_image