Asterisk Howto's

Aus A-Enterprise

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Asterisk Voicemail spool

Voicemail müssen nicht auf der PBX gespeichert bleiben! gleich nach dem speech gehen die vm per mail in die inbox des mail client und pbx users. Eigentlich sollte das Asterisk tun, mit der Option delete=yes

 /etc/asterisk/voicemail.conf

 delete=yes  ; After notification, the voicemail is deleted from the server. [per-mailbox only]
             ; This is intended for use with users who wish to receive their voicemail ONLY by email.

Abhilfe schafft der script /bin/delvm, er löscht alle 5 min. voicemail in der vm-spool queue

#!/bin/bash
#
# build-in use crontab -e */5 * * * * /bin/delvm
# Autor: Don.K at 6th Nov 2006, (C)2006 A Enterprise GmbH 
# define here your context, mainly is default cx=default
vmbox=`asterisk -rx "show voicemail users" | grep $cx | awk '{print $2}'`
if [ -e /var/spool/asterisk/voicemail/$cx/$vmbox/INBOX/msg0000.wav ]; then rm /var/spool/asterisk/voicemail/$cx/$vmbox/INBOX/* else exit 0 fi

Anrufe übernehmen (call pickup)

Um einen Anruf auf einem anderen Telefon übernehmen zu können, muss als erstes in der Konfiguration features.conf die pickup extension eingetragen werden.

pickupexten = *8

Nun können wir die extension die call pickup ausführen soll mit der Option callgroup und pickupgroup und dem Wert der für die Gruppe die Anrufe übernehmen soll im sip.conf für das entsprechende Telefon Eintragen.

[GXP2000]
type = friend
username = 201
secret = 1234
context = default
dtmfmode = rfc2833
callgroup = 2
pickupgroup = 2
disallow = all
allow=ulaw
allow=alaw
allow=g723.1
allow=g729

Feature Application

Eine Feature Application wird meist dort benötigt wo es keine entsprchende Taste auf dem Telefon gibt. Beispielsweise für Call Transfer bei dem Gigaset 450C oder öfters mit anderen DECT Telefone ohne Transfer (TRNF) Taste.

features.conf 
[general]
#include parking_additional.inc #include features_general_custom.conf
featuredigittimeout => 1000 ; Max time (ms) between digits for
[applicationmap]
#include features_applicationmap_additional.conf
[featuremap]
blindxfer => ## ; Blind Transfer atxfer => **  ; Attended Xfer automon => *1  ; One Touch Record

Wahlwiederholung auf der Asterisk PBX

Hat man ein Telefon welches keine Wahlwiederholung bietet, lässt sich auf der PBX in extensions.conf dies ermöglichen, mit dem Shortcut *5 lässt man wie hier die letzte Nummer wieder wählen

[default]
include => macro-recall 
exten => _X.,1,Macro(recall,${EXTEN}) exten => *5,1,DBget(toCall=redial/${CALLERID}) exten => *5,2,Macro(recall,${toCall}) exten => *5,102,Hangup()
[macro-recall] exten => s,1,DBput(redial/${CALLERID}=${ARG1}) exten => s,1,Dial(SIP/${ARG1},20) exten => s,2,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Voicemail(u${ARG1}) exten => s-BUSY,1,Voicemail(b${ARG1}) exten => _s-.,1,Goto(s-NOANSWER,1)

Asterisk GSM Soundformat

Hertellen eines Kompatiblen Soundformat für Asterisk mit SOX. Unter Windows erzeugte wave Dateien können von Asterisk nicht verarbeitet und gelesen werden, hierzu können die sound files mit sox konvertiert werden. Umwandeln von .wav in das gsm format mit sox

sox foo.wav -r 8000 -c1 foo.gsm resample -ql

Die konvertierten gsm sound files nach /var/lib/asterisk/sounds/custom kopieren. Um für Asterisk kompatible wave formate zu konvertieren gibt es die Befehle

~# sox wav_file.wav gsm_file.gsm
~# sox gsm_file.gsm wav_file.wav
~# sox unnow_wav_file.wav asterisk_wav_file.wav

Asterisk weiterleitung programmieren

Der Dialplan für Call Forwarding

Weiterleitung aktivieren mit *72*nnnnnnn#, wobei n für die Nummer steht zu dieser die Anrufe weitergeleitet werden sollen.

In der Konfigurationsdatei extensions.conf eintragen.

;; call forwarding aktivieren
exten => _*72*.,1,Answer()
exten => _*72*.,2,Set(DB(CFI/${CALLERID(NUM)})=${EXTEN:4})
exten => _*72*.,n,Playback(vm-saved)
exten => _*72*.,n,SayDigits(${EXTEN:4})
exten => _*72*.,n,Hangup() 

Mit der #73# wird die weiterleitung ausgeschaltet.

;; call forwarding deaktivieren
exten => #73#,1,Answer()
exten => #73#,n,DBdel(CFI/${CALLERID(num)})
exten => #73#,n,Playback(call-fwd-cancelled)
exten => #73#,n,Hangup()

Als erster befehl soll das macro callforwarding ausgeführt werden, wie hier für die extension 200

[200]
exten => 200,1,Macro,callforwarding|${EXTEN}
exten => 200,n,Dial(SIP/202,30,mt)
exten => 200,n,Hangup()

Hierzu wir das macro benötigt welches für die entsprechenden extensions gilt, der macro Eintrag muss oberhalb des [default] Kontext stehen, und unterhalb der Sektion [general]

[macro-callforwarding]
exten => s,1,Set(temp=${DB(CFI/${ARG1})})
exten => s,n,GotoIf(${temp}?cfi:nocfi)
exten => s,n(cfi),Dial(SIP/${temp})
exten => s,n(nocfi),NoOp

Asterisk Ringtone identification

Asterisk macro using ringtone identification

In Unternehmen ist es sinnvoll die Unterscheidung von einem internen und einem externen Anruf erkennen zu können.

Hier bietet sich folgendes Macro an, welches in die Konfigurations-Datei extensions.conf eingetragen wird, bei FreePBX ist dies die Datei extensions_custom.conf.

Hier können nun beliebige weitere Macros Programmiert werden.

In diesem Beispiel also das SIPAddHeader Macro, dies gilt hier für "global', bei allen externen Anrufe ertönt nun ein anderer Ton, gleichzeit erzeugt der erste Befehl eine zusätzliche 0, um Automatisch die richtige Nummer beim extern wählen zu erhalten.

[macro-exten_did_prefix] 
exten => s,1,Set(CALLERID(num)=0${CALLERID(num)}) exten => s,1,Set(CALLERID(num)=${CALLERID(num)}) exten => s,n,SIPAddHeader("Alert-Info: <http://127.0.0.1>\;info=alert-external\;x-line-id=0;")

weblinks

  • mISDN.org ISDN driver for Linux: mISDN!
  • mISDN ISDN OSI Layered strucure. Layer 1 cause codes
  • BN4S0 Board Jumperplan
  • BN8S0 Board Jumperplan
  • BN2E1 Board Jumperplan
  • BN2E1 Board Jumperplan + Description
  • BN2E1 iPline Default Settings
  • BeroNet Card Installation Guide
  • ISDN Glossar
Persönliche Werkzeuge