DISA für Callthrough mit PIN

Hallo,
ich möchte für mehrere Personen auf einer Durchwahlnummer ein Calthrough mit DISA realisieren.
Der Zugang soll über die PIN erlaubt werden.

Wo macht man denn bei MobyDick am Besten den DISA? Im Wiki habe ich nichts gefunden.
Als Skript? Oder muss man das direkt in der extension.conf machen??

Gruss
Christian

Guten Morgen cgi1018,

du könntest das wie folgt umsetzen:

  1. erstell dir ein Skript mit einer bestimmten Durchwahl und bei einbinden JA,
    so kannst du das Skript schonmal intern direkt rufen.
    Im Skript selbst würde ich dann mit der Authenticate-Application beginnen, so dass die PIN abgefragt werden kann - gilt dann für alle Anrufer die gleiche PIN.
    Danach kann gleich die DISA-Appliaction mit der Option no-password und dem Kontext main folgen und
    zum Abschluss ein Hangup.
  2. jetzt musst du dir noch eine eingehende Regel deiner externen Rufnummer auf die Durchwahl des Skriptes erstellen.

Ich hoffe diese einfache Variante hilft dir schon einmal weiter.

Hallo Markus,

beim Skript gibts bei mir nur Nein, bzw. Vorher/Hint / Nachher aber kein JA.
Ich probier es mal mit vorher.

Gruss
Christian

Hallo,

erreichen kann ich den DISA, Pin funkt auch aber danach kann ich keine Nummer wählen.
Ist main da der richtige kontext?

Skript (06 ist die DW)
exten => 06,1,Authenticate(XXXX)
exten => 06,2,DISA(no-password,main)
exten => 06,3,Hangup(${HANGUPCAUSE})

Sieht dann so aus

Executing Goto(“SIP/patton-b723f810”, “main|06|1”) in new stack
– Goto (main,06,1)
– Executing Authenticate(“SIP/patton-b723f810”, “XXXX”) in new stack
– Playing ‘agent-pass’ (language ‘de’)
– Playing ‘auth-thankyou’ (language ‘de’)
– Executing DISA(“SIP/patton-b723f810”, “no-password|main”) in new stack
== Spawn extension (main, 06, 2) exited non-zero on ‘SIP/patton-b723f810’
– Executing Macro(“SIP/patton-b723f810”, “hangup|||”) in new stack
– Executing NoOp(“SIP/patton-b723f810”, ">>>macro-hangup:: EXTEN: DIALSTATUS: QUEUESTATUS: ") in new stack

Christian

Hallo Christian,

dein Skript passt soweit.
Nachdem du das korrekte Passwort eingegeben hast, solltest du ein Freizeichen bekommen. Ist dies der Fall und wenn Ja, welche Nummer wählst du weiter am Gerät?
Wenn die Rufnummer im Dialplan vorhanden ist, sollte er direkt auf diese weiterleiten, falls nicht solltest du eine Ansage mit der ungültigen Nummer bekommen.

Hallo Markus,

ich habe jetzt den Kontext in den Basiseinstellungen des Skripts auf “disa” geändert und in DISA aber main gelassen jetzt geht es.

Gibts eigentlich ich eine Kontextübersicht für die MD?

Danke nochmal und Gruss
Christian

Hallo Christian,

freut mich, dass es nun klappt.
Eine Kontextübersicht als solches wurde von uns noch nicht publiziert. Ich werde es aber anregen, so dass die Übersicht demnächst in der WIKI zu finden sein wird.

Gruß
Markus

Hallo,
ich habe gerade versucht DISA mit Hilfe dieses Threads zu implementieren, Leider ohne Erfolg. Zunächst ist es mir nicht möglich beim Skript unter Einbinden iregendwas zusammen mit einer Durchwahl auszuwählen, da dann folgender Fehler erscheint:

[Basisdaten] Das Skript mit Durchwahl einzubinden ist nicht möglich;

[Basisdaten] Speichern abgebrochen

Wähle ich bei Einbinden Nein aus, dann erscheint folgender Fehler im Log:

Sep 30 14:08:14 WARNING[8572] app_macro.c: No such context ‘macro-pre-main’ for macro ‘pre-main’
Sep 30 14:08:14 WARNING[8572] pbx.c: Channel ‘Zap/1-1’ sent into invalid extension ‘s’ in context ‘disa’, but no invalid handler

Das einzige was ich anders gemacht habe als in dieser Anleitung ist, dass ich “exten => 06,1,Authenticate(XXXX)” weggelassen habe, da ich über die CID des Anrufers freischalte.

Kann mir jemand hierbei weiterhelfen?

Danke im vorraus

Hallo,

ich vermute du hast das skript mit jetzt mit einer Durchwahl eingebuden.

Sobald dies aber so ist bringt dir exten => 06,… nichts mehr, wie du hier erkennen kannst
Sep 30 14:08:14 WARNING[8572] pbx.c: Channel ‘Zap/1-1’ sent into invalid extension ‘s’ in context ‘disa’, but no invalid handler

sucht es nach einer s extension.

Es sollte dann in etwa so aussehen:

exten => s,1,Authenticate(XXXX)
exten => s,n,DISA(no-password,main)
exten => s,n,Hangup(${HANGUPCAUSE})

Hat funktioniert danke für die schnelle Antwort

Was muss ich denn anstelle der XXXX bei exten => s,1,Authenticate(XXXX) reinsetzen. Nummern pur funktionieren leider nicht.

Hallo,

ich vermute du hast ein ‘,’ zuviel :

exten => s,1,Authenticate(1234)

Das war es. Manchmal sieht man den Wald vor lauter Bäumen nicht. :slight_smile:

Vielen Dank!

Hallo Leute,

ich wollte heute DISA auf der MobyDick einrichten und ich hänge hier fest.
Folgendes Script habe ich erstellt

Bezeichnung: Callthrough
Kontext: disa
Einbinden: NEIN
Durchwahl: 230

exten => s,1,Authenticate(1234)
exten => s,n,DISA(no-password,main)
exten => s,n,Hangup(${HANGUPCAUSE})

Wenn ich nun von extern die DW 230 anrufe, erhalte ich die PIN Abfrage, dann gebe ich die PIN ein (1234#) und erhalte auch ein Freizeichen.
Nun will ich eine Nummer eingeben, die angerufen werden soll. Jedoch kann ich nur eine Ziffer eingeben und schon erhalte ich die Nachricht, dass die Eingabe nicht gültig sei.

Hier der Auszug aus dem asterisk

-- <SIP/mdc_trunk_conf-15-00001ba5> Playing 'auth-thankyou.alaw' (language 'de')
-- Executing [s@disa:2] DISA("SIP/mdc_trunk_conf-15-00001ba5", "no-password,main") in new stack
-- Executing [0@main:1] Gosub("SIP/mdc_trunk_conf-15-00001ba5", "sub_defcall,s,1(0)") in new stack
-- Executing [s@sub_defcall:1] Set("SIP/mdc_trunk_conf-15-00001ba5", "__MDC_ALIAS_HOP=2") in new stack
-- Executing [s@sub_defcall:2] Set("SIP/mdc_trunk_conf-15-00001ba5", "__MDC_DIALCALLEENUM=0") in new stack
-- Executing [s@sub_defcall:3] Set("SIP/mdc_trunk_conf-15-00001ba5", "__MDC_DIALCALLERNUM=<HANDYNUMMER>") in new stack
-- Executing [s@sub_defcall:4] GotoIf("SIP/mdc_trunk_conf-15-00001ba5", "1?nozap") in new stack
-- Goto (sub_defcall,s,8)
-- Executing [s@sub_defcall:8] Set("SIP/mdc_trunk_conf-15-00001ba5", "__MDC_DIALCALLERNAME=Linuxuser") in new stack
-- Executing [s@sub_defcall:9] Set("SIP/mdc_trunk_conf-15-00001ba5", "__MDC_DIALCHANNELNAME=mdc_trunk_conf-15") in new stack
-- Executing [s@sub_defcall:10] Return("SIP/mdc_trunk_conf-15-00001ba5", "") in new stack
-- Executing [0@main:2] Goto("SIP/mdc_trunk_conf-15-00001ba5", "mdc_distribute,0,1") in new stack
-- Goto (mdc_distribute,0,1)
-- Executing [0@mdc_distribute:1] Gosub("SIP/mdc_trunk_conf-15-00001ba5", "def_exception,s,1") in new stack
-- Executing [s@def_exception:1] Answer("SIP/mdc_trunk_conf-15-00001ba5", "") in new stack
-- Executing [s@def_exception:2] GotoIf("SIP/mdc_trunk_conf-15-00001ba5", "0?main,,1") in new stack
-- Executing [s@def_exception:3] Playback("SIP/mdc_trunk_conf-15-00001ba5", "pbx-invalid") in new stack
-- <SIP/mdc_trunk_conf-15-00001ba5> Playing 'pbx-invalid.alaw' (language 'de')

== Spawn extension (def_exception, s, 3) exited non-zero on ‘SIP/mdc_trunk_conf-15-00001ba5’

Ich habe versucht eine Festnetznummer zb. 089XXXXXX zu wählen, aber nach der 0 kommt sofort die Eingabe ist nicht gültig.

Hat jemand eine Idee?

Linuxuser

Hallo Linuxuser,

welche Version setzt du denn ein?

Gruß
Markus

Hallo Markus,

aktuell noch 7.10.03.

Gruß
Linuxuser

Hallo Linuxuser,

ändere bitte mal dein Script wie folgt ab

exten => s,1,Authenticate(1234)
exten => s,n,DISA(no-password,disa)
exten => s,n,Hangup(${HANGUPCAUSE})

exten => _XX.,1,Goto(main,${EXTEN},1)

Gruß
Markus

Hallo Markus,

danke funktioniert.

hast Du noch einen Tip, wie ich eine “CALLERID(num)” hier setze?
Will nicht, dass meine Nummer gesendet wird.

Greetz

Hallo,

exten => _XX.,1,Goto(main,${EXTEN},1)

durch
exten => _XX.,1,Set(CALLERID(num)=prohib)
exten => _XX.,n,Goto(main,${EXTEN},1)

ersetzen sollte das für dich erledigen. Wenn prohib nicht funktioniert, dann leer setzten oder eine Stammnummer zur PBX.

Grüße,
Steve

Hallo Steve,

merci vielen Dank. klappt!!!

Beste Grüße
Linuxuser