DTMFBox einrichten

Izzy

Mitglied
Mitglied seit
10 Mrz 2006
Beiträge
254
Punkte für Reaktionen
0
Punkte
0
Hallöle,

hab schon die Forums-Suche zu Rate gezogen, aber nichts treffendes gefunden (will nicht ausschließen, dass das Problem dabei vor der Tastatur sitzt :silly:). Daher hier meine Fragen:

  • Gibt es irgendwo ein "HowTo" zur Einrichtung von DTMFBox, das auch für Newbies geeignet ist?
  • Gibt es irgendwo eine Skript-Sammlung für DTMFBox?

Meine Hoffnung war, damit der nervigen "anonymen Alko...Anrufer" Herr zu werden. Was mir vorschwebt, ist ein "Automat", der (ausschließlich) bei Anrufern rangeht, die keine Nummer übermitteln. Diesen sollen drei Optionen vorgesetzt werden:

  1. Eingabe des Authorisierungscodes
  2. Durchstellen zum AB
  3. Weitere Informationen

Der "Authorisierungscode" ist halt eine 1..4stellige PIN, die man den wenigen erwünschten "Anonymen" mitteilen kann.

Durchstellen zum AB ist klar - sollte auch bei PIN-Falscheingabe passieren.

Weitere Informationen - naja, halt ein kurzer Text zum Thema "Cold Calls", "Robinson-Liste" und so :)

Hat da schon jemand was?

Beste Grüße und Besten Dank vorab,
Izzy.
 
Hallo Izzy,

das Anti-Callcenter-Skript müsste neu geschrieben werden. Die Hilfe gibt es im Webinterface. Um einen kleinen Einstieg in die Materie zu bieten, kommt das neu schreiben des Anti-Callcenter-Skriptes gerade richtig.

Damit unbekannte Nummern abgefangen werden können, muss man Aktionen festlegen, ähnlich wie beim Anrufbeantworter oder beim Callback/Callthrough.
Man wartet auf ein bestimmtes Telefonie-Ereignis und ruft dann ein Skript auf. Unter "Menü bearbeiten" den Text-Editor Link anklicken und folgendes in die menu.cfg einfügen:

menu.cfg
Code:
[menu:anonymous_caller]
say=
#=script:action_anonymous("NUMBER")

[script:action_anonymous_entry]
cmd=/var/dtmfbox/script/action_anonymous.sh(/var/dtmfbox/script/action_anonymous.sh, "%event%", "%type%", "%direction%", "%src_id%", "%dst_id%", "%src_no%", "%dst_no%", "%acc_id%", "%dtmf%", "ENTRY")

[script:action_anonymous]
cmd=/var/dtmfbox/script/action_anonymous.sh(/var/dtmfbox/script/action_anonymous.sh, "%event%", "%type%", "%direction%", "%src_id%", "%dst_id%", "%src_no%", "%dst_no%", "%acc_id%", "%dtmf%", "%$1%")

[action:4_anonymous]
event=CONNECT
direction=INCOMING
action=script:action_anonymous_entry
Die Sektion "[action:4_anonymous]" wartet auf einen eingehenden Anruf und ruft bei dem Ereignis "CONNECT" die Sektion "[script:action_anonymous_entry]" auf. Hierin wird das Skript /var/dtmfbox/script/action_anonymous.sh ausgeführt. Als 10. Parameter wird das Wort "ENTRY" mitgegeben:

/var/dtmfbox/script/action_anonymous.sh
Code:
#!/var/tmp/sh

# Skripteinstellungen
. /var/dtmfbox/script.cfg

# Argumente
THIS_FILE="$0"
EVENT="$1"
TYPE="$2"
DIRECTION="$3"
SRC_ID="$4"
DST_ID="$5"
SRC_NO="$6"
DST_NO="$7"
ACC_ID="$8"
DTMF="$9"
MODE="$10"

ABORTFILE="/var/dtmfbox/tmp/$SRC_ID.abort_action"

# MODE=ENTRY -	Skript wurde von [action:4_anonymous] aufgerufen
#
if [ "$MODE" = "ENTRY" ];
then
	let DST_NO_LEN=`echo ${#DST_NO}`

	# Wenn die Anrufernummer unbekannt ist oder die Länge der Nummer kleiner 4 Zeichen, dann ...
	if [ "$DST_NO" = "anonymous" ] || [ $DST_NO_LEN -le 4 ];
	then
		echo "ANONYMOUS" > "$ABORTFILE"							# alle anderen Aktionen abbrechen (AB, CBCT)
		$DTMFBOX $SRC_ID -hook up							# Abheben
		$DTMFBOX $SRC_ID -goto "menu:anonymous_caller"					# in das Menü "menu:anonymous_caller" wechseln
		$DTMFBOX $SRC_ID -speak "Bitte Nummer eingeben und mit Raute bestaetigen."	# eSpeak-Text
	fi
fi

# MODE=NUMBER -	Skript wurde von [menu:anonymous_caller] aufgerufen
#
if [ "$MODE" = "NUMBER" ];
then
	DST_ID=`$DTMFBOX $SRC_ID -call "$DTMF" "$SRC_NO" "3"`					# Anruf durchführen (Ctrl. 3, interner S0)
	$DTMFBOX $SRC_ID -stop menu								# Menü verlassen
	$DTMFBOX $SRC_ID -scriptfile "$THIS_FILE"						# Skript dieser Verbindung auf aktuelle Skriptdatei festlegen (EVENT = DISCONNECT)
	$DTMFBOX $DST_ID -scriptfile "$THIS_FILE"						# Skript der Partnerverbindung auf aktuelle Skriptdatei festlegen (EVENT = DISCONNECT)
fi

# Wenn aufgelegt wird, beide Verbindungen trennen und $ABORTFILE löschen
#
if [ "$EVENT" = "DISCONNECT" ];
then
	$DTMFBOX $DST_ID -hook down								# Partnerverbindung beenden
	if [ -f "$ABORTFILE" ]; then rm "$ABORTFILE"; fi					# $ABORTFILE löschen
fi
In dem Skript wird beim Einstieg aus der Aktion "[action:4_anonymous]" geprüft, ob es sich um einen unbekannten Anrufer handelt.
Wenn dem so ist, wird die Verbindung angenommen und in das Menü "[menu:anonymous_caller]" gewechselt.

Der Anrufer wird nach der Nummer gefragt und kann mit der #-Taste eine (interne) Verbindung zum Telefon herstellen. Dabei wird das Skript action_anonymous.sh nochmal aufgerufen, diesmal aber mit dem Parameter "NUMBER".

Falls man hier eine Passwort-Abfrage benötigt, muss man nur die Menü-Sektion "[menu:anonymous_caller]" abändern! (#= durch 1234=).

Wird eine der beiden Verbindungen getrennt, so wird das DISCONNECT-Ereigniss aufgerufen.

Das Skript kann einfach unter /var/dtmfbox/script abgelegt werden. Im Webinterface muss man einmal auf 'Speichern' klicken, damit es auch den Reboot überlebt.

Testen kann man am besten, wenn die dtmfbox im Vordergrund läuft:
Code:
./rc.dtmfbox stop
./rc.dtmfbox foreground
Damit sieht man dann auch die Skriptausgaben.
 
Hi Marco,

super Beschreibung, besten Dank! Wie auch die Online-Hilfe recht umfangreich ist (und deren Lektüre einige Fragen ersparen dürfte ;)). Letztere werde ich mir erst einmal in Ruhe zu Gemüte führen, und dann kann's losgehen. Habe halt dummerweise noch espeak vergessen einzubinden - also Image nochmal bauen...

Sehe gerade, dass Du sogar meine Anregung mit der Überprüfung der eingegebenen Nummer mit aufgegriffen hast - supi, Danke! :p

Beste Grüße,
Izzy.
 
wie komme ich an diese Online-Hilfe? Würde auch gerne die DTMFBox nutzen, aber weiß noch nicht genau, wie ich sie am besten und einfachsten implementiere. Vor allem möchte ich eigentlich nur das AntiCallCenter und die Rückwärtssuche nutzen.
 
Aktuell bekommst du die Hilfe so, wie es hier im Thread zu finden ist. "Installieren", und schon hast du einen Link darauf.
 
Jeder ist auch herzlich eingeladen, im Wiki vorbeizuschauen. An dem Artikel arbeite ich gerade noch - ist aber seit Wochenbeginn schon um mindestens 300% größer geworden ;)

@bodega: Könntest Du den Artikel zur Sicherheit nochmal gegenlesen? Nicht, dass ich irgendwo Mist geschrieben habe :silly:
 
Zuletzt bearbeitet:
Hallo Izzy,

also ich bin jetzt mal echt baff. Das ist wirklich Spitze, was du leistest. Du hast im Wiki jede Menge Artikel nachgeholt, die eigentlich schon längst überfällig waren. Die lesen sich sogar richtig gut. :rock: - einen Verweis auf die Remote-CAPI im "Remove CapioTCP" habe ich ebenfalls entdeckt :)

Zum Einrichten der SIP-Accounts und dem Registrar-Mode werde ich noch ein paar Dinge hinzuschreiben. Ansonsten hast du es wirklich gut beschrieben, dass ich mich schon fast nicht traue, etwas daran zu ändern.

Wirklich toll, Respekt!
 
:oops: Da werd ich glatt rot :p Danke für das Lob! Ja, die Artikel waren wirklich überfällig - deshalb habe ich mich auch gleich über alle hergemacht. Damit verbunden war natürlich, dass ich mich über die Dinge informieren musste - und das ist gut so, jetzt blicke ich ein wenig besser durch ;) Und ich kann damit auch etwas "zurück geben" für das, was ich Dank Euch bekomme - das "Geben-und-Nehmen" bei OpenSource halt ;)

Ja, füg gern noch viel dazu - keine Scheu. Wenn's zu schlimm aussieht, kann ich's ja immer noch überarbeiten :rolleyes: Viel wichtiger ist doch, dass die Info da ist. Und wenn ich etwas falsch ge-/beschrieben habe, möchte ich doch um eine Korrektur bitten ;)

DTMFBox habe ich bei mir gestern scharf geschaltet - jetzt wird damit ein wenig "gespielt". Möchte z.B. noch rausbekommen, ob ich von Remote das Menü (z.B. per 012345678**600) auch anrufen kann, ohne dass das Telefon klingelt (sonst geht am Ende immer wer ran, und ich komm nicht ins Menü). Weil wenn nicht, muss halt 'ne zusätzliche MSN dafür rein (hab noch eine liegen)...

Btw: Habe gerade Andreas (buehmann - CallMonitor) empfohlen, sich für die Skriptbearbeitung mal bei DTMFBox zu bedienen (hier: Bearbeiten der Templates für bei Events verschickten Nachrichten). Ich finde das echt obergenial, wie das bei DTMFBox alles übers WebIF machbar ist - Hut ab, echt supi!
 
Ja Marco 1000 Dank für das mächtige Tool Echt ganz grosses KINO

habe juist eben die fritzbox als sip server eingerichtet
und konnte mich mit meinen 7940 cisco anmelden und über Standartcontroller 1

über capi isdn raus telefonieren


wow

super

und das ohne asterisk

nur wie bekomme ich einen eingehenden isdn call auf meiner sip nummer 771 des cisco

hm

wer kann da helfen

gruss

ichego1
 
Verständnisfrage zu den action-Einträgen in der menu.cfg:

Wie werden diese Einträge denn abgearbeitet, falls da mehrere Einträge vorhanden sind,
die dieselbe Kombination event & direction wie nachfolgend haben?

[action:2_cbct]
event=CONNECT
direction=INCOMING
action=script:action_cbct

[action:3_answering_machine]
event=CONNECT
direction=INCOMING
action=script:action_am

[action:4_anonymous]
event=CONNECT
direction=INCOMING
action=script:action_anonymous_entry
 
Ich tippe mal auf "nacheinander" in alphabetischer Reihenfolge. Sicher bin ich da allerdings nicht - probier's doch einfach mal ;)

Beste Grüße,
Izzy.
 
@Izzy

Jepp,
nacheinander werden alle "action"-Einträge nebst Script usw. abgearbeitet.

Man muss daher beachten,
was man in den Folgescripten bei gleichen "Action"-Kombinationen macht.
 
[Edit frank_m24: Seitenlanges Vollzitat gelöscht. Lies noch mal die Forumregeln.]
Ich bin newbie sowohl im Forum als auch mit DMTFBox.
Ich habe die DMTFBox erfolgreich auf meiner FritzBox Fon WLAN 7170 installiert und dann das obige Skript zum PIN Eingabe bei anonymen Anrufen installiert. Leider funktioniert es bei mit noch nicht. Wenn ich vom Handy aus anonym auf meinen Festnetzanschluss anrufe, erhalte ich zwar folgende Meldung. Der anonyme Anruf wird erkannt und (angeblich) das Skript /var/dtmfbox/script/action_anonymous.sh ausgeführt. Aber die FritzBox nimmt den Anruf nicht an, d.h. es klingelt weiter und es wird nicht auf die Eingabe einer PIN reagiert. Ich habe mal in das Skript action_anonymous.sh ein paar echo-Anweisungen eingefügt; diese werden aber nicht ausgegeben. Dann habe ich den Dateinamen in action_anonymous2.sh geändert und hätte eigentlich eine Fehlermeldung erwartet, dass die Datei action_anonymous.sh nicht existiert. Aber es kommt trotzdem die Meldung
12:24:02 [plugin.menu] Script: /var/dtmfbox/script/action_anonymous.sh(/var/dtm
fbox/script/action_anonymous.sh, "CONNECT", "CAPI", "INCOMING", "0", "-1", "unkn
own", "anonymous", "1", "", "ENTRY") (acc=1 con=0)
Schließlich habe ich mal probiert, über telnet einen eingehenden Anruf "manuell" anzunehmen über ./dtmfbox -hook up . Scheint aber auch nicht zu gehen; es klingelt munter weiter.
Kann sich jemand erklären, woran das liegt ?

Ich füge nun mal den Log ein:

[Edit frank_m24: Bitte benutzt CODE Tags für solche Ausgaben.]
Code:
# ./rc.dtmfbox stop
Stop dtmfbox ... done!
# ./rc.dtmfbox foreground
Start dtmfbox ...
-------------------------------------------------------------------------------
 dtmfbox 0.5.0
-------------------------------------------------------------------------------
 12:28:56 dtmfbox 0.5.0
 12:28:56 PJSIP 1.0.1
 12:28:56 select() I/O Queue created (0x51e318)
 12:28:56 Module "mod-msg-print" registered
 12:28:56 Init VoIP ...
 12:28:56 Resolve local IP ...
 12:28:56 Use IP: 62.157.140.133
 12:28:56 SIP UDP transport started, published address is 62.157.140.133:5061
 12:28:56 UDP server listening on port 5061
 12:28:56 Module "mod-tsx-layer" registered
 12:28:56 Module "mod-stateful-util" registered
 12:28:56 Module "mod-ua" registered
 12:28:56 Module "mod-100rel" registered
 12:28:56 Module "mod-invite" registered
 12:28:56 Module "dtmfbox" registered
 12:28:56 Module "dtmfbox_registrar" registered
 12:28:56 select() I/O Queue created (0x521ad4)
 12:28:56 Conference bridge created [8000/16/1]
 12:28:56 Allocate 11 connections with 4 RTP/RTCP transports
 12:28:56 connection_by_free - Connection: 0
 12:28:56 RTP/RTCP: 80.156.86.78:4000-4001
 12:28:56 RTP/RTCP: 62.157.140.133:4002-4003
 12:28:56 RTP/RTCP: 80.156.86.78:4004-4005
 12:28:57 RTP/RTCP: 80.156.86.78:4006-4007
 12:28:57 RTP/RTCP media transport created
 12:28:57 VoIP initialized!
 12:28:57 Init CAPI ...
 12:28:57 CAPI controller: 5
 12:28:57 Found controller #1 with 2 B-channel(s)
 12:28:57 Found controller #2 with 2 B-channel(s)
 12:28:57 Found controller #3 with 2 B-channel(s)
 12:28:57 Found controller #4 with 1 B-channel(s)
 12:28:57 Found controller #5 with 3 B-channel(s)
 12:28:57 CAPI registered (ApplID: 6, B-Channels: 10)
 12:28:57 Build a-law/pcm table buffer
 12:28:59 CAPI initialized!
 12:28:59 [plugin.menu] Loading /var/dtmfbox//menu.cfg ...
 12:28:59 [plugin.menu] action:1_ctrl5reject loaded (5 entries)
 12:28:59 [plugin.menu] action:2_action_wrapper loaded (1 entries)
 12:28:59 [plugin.menu] action:4_anonymous loaded (3 entries)
 12:28:59 [plugin.menu] lib:speak loaded (2 entries)
 12:28:59 [plugin.menu] menu:am loaded (2 entries)
 12:28:59 [plugin.menu] menu:am_delete loaded (3 entries)
 12:28:59 [plugin.menu] menu:am_on_off loaded (2 entries)
 12:28:59 [plugin.menu] menu:am_setup loaded (4 entries)
 12:28:59 [plugin.menu] menu:anonymous_caller loaded (2 entries)
 12:28:59 [plugin.menu] menu:anticallcenter loaded (1 entries)
 12:28:59 [plugin.menu] menu:callthrough_account loaded (13 entries)
 12:28:59 [plugin.menu] menu:callthrough_number loaded (3 entries)
 12:28:59 [plugin.menu] menu:callthrough_pin loaded (3 entries)
 12:28:59 [plugin.menu] menu:dtmf_commands loaded (7 entries)
 12:28:59 [plugin.menu] menu:main loaded (6 entries)
 12:28:59 [plugin.menu] menu:misc loaded (6 entries)
 12:28:59 [plugin.menu] menu:misc_checkmaild loaded (5 entries)
 12:28:59 [plugin.menu] menu:misc_fb loaded (5 entries)
 12:28:59 [plugin.menu] menu:misc_radio loaded (11 entries)
 12:28:59 [plugin.menu] menu:misc_weather loaded (3 entries)
 12:28:59 [plugin.menu] script:action_anonymous loaded (1 entries)
 12:28:59 [plugin.menu] script:action_anonymous_entry loaded (1 entries)
 12:28:59 [plugin.menu] script:action_anticallcenter loaded (1 entries)
 12:28:59 [plugin.menu] script:action_ctrl5 loaded (1 entries)
 12:28:59 [plugin.menu] script:action_wrapper loaded (1 entries)
 12:28:59 [plugin.menu] script:am_admin loaded (1 entries)
 12:28:59 [plugin.menu] script:am_setup loaded (1 entries)
 12:28:59 [plugin.menu] script:callthrough loaded (1 entries)
 12:28:59 [plugin.menu] script:misc_checkmaild loaded (1 entries)
 12:28:59 [plugin.menu] script:misc_fb loaded (1 entries)
 12:28:59 [plugin.menu] script:misc_radio loaded (1 entries)
 12:28:59 [plugin.menu] script:misc_weather loaded (1 entries)
 12:28:59 [plugin.menu] 32 entries loaded!
 12:28:59 [plugin.menu] Initialized!
 12:28:59 #1 - Plugin "libmenu.plugin.so" loaded!
 12:28:59 (0x3ff) - Listen to CAPI controller 1 ...
 12:28:59 (0x3ff) - Listen to CAPI controller 4 ...
 12:28:59 (0x3ff) - Listen to CAPI controller 3 ...
 12:28:59 (0x3ff) - Listen to CAPI controller 5 ...
 12:28:59 Start CAPI listen loop ...
 12:28:59 Start VoIP listen loop ...
 12:28:59 [ctrl=1] CNF: CAPI_LISTEN
 12:28:59 [ctrl=4] CNF: CAPI_LISTEN
 12:28:59 [ctrl=3] CNF: CAPI_LISTEN
 12:28:59 [ctrl=5] CNF: CAPI_LISTEN
 12:28:59 Set low priority
 12:29:23 connection_by_free - Connection: 0
 12:29:23 [type=capi/inc conid=0 accid=1] (IND) CAPI_CONNECT
 12:29:23 (IND) CAPI_INFO (0x0018) - CHANNEL IDENTIFICATION (0x03)
 12:29:23 (IND) CAPI_INFO (0xc000) - UNKNOWN INFO
 12:29:23 [ctrl=4, plci=260] CNF: CAPI_ALERT
 12:29:23 [plugin.menu] Action: script:action_wrapper (acc=1 con=0)
 12:29:23 [plugin.menu] Script: /var/dtmfbox/script/action.sh(/var/dtmfbox/scrip
t/action.sh, "CONNECT", "CAPI", "INCOMING", "0", "-1", "unknown", "anonymous", "
1", "", "") (acc=1 con=0)
 12:29:23 [plugin.menu] Action: script:action_anonymous_entry (acc=1 con=0)
 12:29:23 [plugin.menu] Script: /var/dtmfbox/script/action_anonymous.sh(/var/dtm
fbox/script/action_anonymous.sh, "CONNECT", "CAPI", "INCOMING", "0", "-1", "unkn
own", "anonymous", "1", "", "ENTRY") (acc=1 con=0)
 12:29:24 Set high priority
 12:29:36 CAPI 0x3490 - Normal call clearing
 12:29:36 [type=capi/inc conid=0 accid=1] (IND) CAPI_DISCONNECT
 12:29:36 [plugin.menu] Action: script:action_wrapper (acc=1 con=0)
 12:29:36 [plugin.menu] Script: /var/dtmfbox/script/action.sh(/var/dtmfbox/scrip
t/action.sh, "DISCONNECT", "CAPI", "INCOMING", "0", "-1", "unknown", "anonymous"
, "1", "", "13456") (acc=1 con=0)
 12:29:36 Set low priority

Vielleicht ist noch von Interesse: Ich habe einen analogen Telefonanschluss + DSL.
 
Zuletzt bearbeitet:
Ich bin leider immer noch nicht weitergekommen. Vielleicht ist es nur eine Kleinigkeit, die ich falsch mache, aber ich komme einfach nicht drauf. Ansonsten ist die DTMFBox ja ein sehr schönes und leistungsfähiges Programm. Einige andere Funktionen wie z.B. Anrufbeantworter haben bei mir funktioniert. Aber bei obigem Skript komme ich nicht weiter. Ich verstehe vor allem nicht, warum im Log angezeigt wird, dass das Skript angeblich ausgeführt wird, und tatsächlich scheint dies nicht der Fall zu sein (echo-Befehle wirkungslos, keine Fehlermeldung, wenn die Skript-Datei gar nicht existiert).

Ich wäre für jede Unterstützung sehr dankbar.
 
Stimmt der Pfad der Scripte?
 
Danke für den Hinweis. Der Pfad stimmt schon. Ich habe nun einfach mal versucht, das Skript "von Hand" zu starten. Es kam die Meldung "Permission denied". Nach einem chmod 777 wird jetzt das Skript ausgeführt. Ich habe halt mit Linux allenfalls Grundkenntnisse und bin daher zunächst nicht drauf gekommen. Ich werde nun mal weiter experimentieren und hoffe, dass ich die DTMFBox nun nach meinen Wünschen konfigurieren kann ...
Aber eine andere Frage habe ich noch: Wenn ich in der Web-Oberfläche der DTMFBox auf "Skripte bearbeiten" klicke, kann ich nur das Skript "/var/dtmfbox/script/action.sh" bearbeiten und kein anderes. Selbst wenn ich auf "Neu" klicke, wird zwar eine neue Datei mit dem eingegebenen Namen erstellt, aber wieder action.sh zur Bearbeitung geladen. Ist das normal ? Ich konnte z.B. action_anonymous.sh bislang nur mit dem vi-Editor bearbeiten.
Grüße Florian
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.