[Frage] Asterisk konfigurieren bei Anruf auf DTMF überwachen und bei erkennung script start

sunnyboy1988

Neuer User
Mitglied seit
13 Dez 2012
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

Ich kenne mich zwar ein bisschen mit Asterisk aus, aber leider noch nicht so gut... Könnte mir jemand vielleicht eine sample config für Asterisk posten für folgende Situation (hat doch sicher schon mal jemand gemacht):

Mein Projekt ist eine Art "Türsprechstelle mit Türöffner". Ich habe eine Extention in Asterisk mit der ID (z.B. 1000). Nun möchte ich wenn diese Extention eine Nummer anruft, dass Asterisk das Gespräch auf DTMF "belauscht" und falls der DTMF code (z.B. #1234) erkannt wird, dass dann ein Script (z.B. ~/tueroeffner) ausgeführt wird. Asterisk sollte aber nur auf ein DTMF Signal von dem Angerufenen - falls möglich - reagieren (Sicherheit).

Ich habe schon etwas herausgefunden: es müsste wohl in features.conf eingestellt werden...

Vielen Dank schon mal für all die, die mir mit meinem Problem / Projekt weiterhelfen können =)

PS: falls ich diese Projekt hinbekommen sollte schreibe ich natürlich ein How-To wie ich es realisiert habe für den Fall das jemand anderes dies auch mal probieren möchte =)
 
Zuletzt bearbeitet:

Tippfehler

IPPF-Promi
Mitglied seit
14 Sep 2004
Beiträge
3,151
Punkte für Reaktionen
14
Punkte
38
Hallo,

so ähnlich sieht es bei mir aus:
Ich habe versucht, es auf das Nötigste zu kürzen und anzupassen und hoffe, dass ich nicht zu viel gelöscht habe. Bei mir gibt es auch drei verschiedene Türen, die mit verschiedenen Codes an verschiedenen Türtelefonen geöffnet werden.
Es gibt zwei verschiedene Codes, die in dem Fall aber das selbe Relais auslösen. So kann man leicht Codes für Gäste anpassen.
Das Telefon befindet sich an einem ATA, der beim Abnehmen des Hörers eine bestimmte Rufnummer wählt, falls kein Code eigegeben wird, diese Rufe landen dann bei (tueröffner,s,1).

Code:
[tueroeffner]
exten => s,1,Set(NR=)
exten => s,n,Background(transfer)
exten => s,n,Set(TIMEOUT(response)=0.5)
exten => s,n,Background(beep)
exten => s,n,Set(TIMEOUT(response)=0.5)
exten => s,n,Goto(#,1)
exten => s,n,Hangup()

exten => _X,1,Set(NR=${NR}${EXTEN})
exten => _X,2,Goto(s,4)

exten => i,1,Playback(auth-incorrect)
; Zuruecksetzen
exten => *,1,Goto(s,1)
; Nummer uebergeben
exten => #,1,GotoIf($[ ${NR} = 123456 ]?7:2)
exten => #,2,GotoIf($[ ${NR} = 654321 ]?7:10)

exten => #,7,System(/opt/etc/asterisk/relay1.sh &)
exten => #,8,System(/opt/bin/mutt -s "Tuer mit Code ${IF( $[ ${NR} = 654321 ] ? B : A)} geoeffnet" [email protected] &)
exten => #,9,Hangup()
exten => #,10,Dial(SIP/771&...,55,t)
exten => #,11,Goto(record,s,1)
exten => #,12,Hangup()
Wenn man mit dem Teilnehmer an der Tür spricht, kann man ihn z. B. mit #1# reinlassen:
Code:
exten => 1,1,System(/opt/etc/asterisk/relay1.sh &)
exten => 1,2,Hangup()
In einem lokalen Kontext.
 
Zuletzt bearbeitet:

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
11,679
Punkte für Reaktionen
227
Punkte
63
Moinsen


Ja, genau :D
Ick würde drauf wetten, dass der erlaubte Peer nur die Barke ( # ) tippen muss.
...die 1# wird knallhart ignoriert.

PS: So einen Achterbahn Dialplan sieht man nicht oft ;)
PPS: Ick hätte das mit Read() versucht, damit lässt sich auch eine PIN-Abfrage konstruieren

Übrigens...
Hangup() nach einem Goto() wird niemals ausgeführt, denn ein Goto() kehrt nicht zurück.
...anders siehts bei Gosub() aus ;)
 
Zuletzt bearbeitet:

PsychoMantis

Aktives Mitglied
Mitglied seit
18 Dez 2005
Beiträge
2,518
Punkte für Reaktionen
4
Punkte
38
Irgendwas muss man noch in features.conf einstellen und den Dial-Befehl in extensions.conf mit dem Parameter "t" aufrufen. Aber wie das genau geht...das muss ich noch rausfinden.

Nachtrag: Habe es rausgefunden. Ist ja total simpel (aber erst wenn man es weiß).
In die extensions.conf kommt vor dem Dial-Befehl noch ein Set:
Code:
exten => 0174xxxxxxxx,1,Set(__DYNAMIC_FEATURES=test)
exten => 0174xxxxxxxx,2,Dial(SIP/[email protected],,t)
Und meine /etc/asterisk/features.conf schaut gerade so aus:
Code:
[general]

[featuremap]

[applicationmap]
test => 1234,peer/callee,System(sudo /usr/local/bin/opendoor.py)
 
Zuletzt bearbeitet:

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,091
Beiträge
2,030,070
Mitglieder
351,406
Neuestes Mitglied
Horst-Werner