DISA Timeout beschleunigen?

D-Trix

Neuer User
Mitglied seit
11 Jul 2005
Beiträge
127
Punkte für Reaktionen
0
Punkte
0
Mein Asterisk hängt mit einer Fritzkarte und chan_capi an einer TK-Anlage und stellt nach wahl der Nebenstelle 10 am ISDN-Telefon ein "Amt" zu Verfügung, mit dem ich mit Sipgate nach draussen telefonieren kann.


extensions.conf:
[from-isdn]
exten => s,1,Read(Number)
exten => s,2,Dial(SIP/${Number}@sipgateout)


Ist es möglich, nach anwahl der Nebenstelle beim READ-Befehl einen Freizeichen zu erhalten? Sicher ist das nicht ganz vorgesehen, aber evtl lässt sich das ja faken?

Die deutschen Töne habe ich in der indications.conf schonmal eingetragen:

[gerneral]
country=de
.
.
.
[de]
description = Germany
ringcadance = 1000,4000
; Wählton
dial = 425
; Rufton
ring = 425/1000,0/4000
; Besetzt
busy = 425/480,0/480
; Identisch zu Besetzt, könnte Gassen-Belegt sein
congestion = 425/480,0/480
; Anklopfton
callwaiting = 425/2000,0/6000
; Besetzt, Rückruf möglich
dialrecall = 425/500,0/500,425/500,0/500,425/500,0/500,1600/100,0/900

record = 1400/500,0/15000
; Tüt-Tüt-Tüt, kein Anschluß unter dieser Nummer
info = 950/330,0/200,1400/330,0/200,1800/330,0/1000
 
Versuchs mal mit DISA.
 
Aber dann müsste ich ja ein Password verwenden; und das macht mir meinen Komfort ja kaputt ;)


DISA (Direct Inward System Access) Allows someone from outside the telephone switch (PBX) to obtain an "internal" system dialtone and to place calls from it as if they were placing a call from within the switch. A user calls a number that connects to the DISA application and is given dialtone and context.

The user enters their passcode, followed by the pound sign (#). If the passcode is correct, the user is then given system dialtone on which a call may be placed. Obviously, this type of access has SERIOUS security implications, and GREAT care must be taken NOT to compromise your security.



Also auf normalem wege würde es nicht gehen? Wäre auch nicht tragisch ;)
 
Code:
  -= Info about application 'DISA' =- 

[Synopsis]:
DISA (Direct Inward System Access)

[Description]:

[...]

There is a possibility of accessing DISA without password. Simply
exchange your password with no-password.

  Example: exten => s,1,DISA,no-password|local

[...]
 
Okay ich habe es jetzt mit DISA realisiert.
Früher bei "read" konnte ich mit einer Raute mein Asterisk dazu bewegen, die ziffernfolge schneller per sip zu wählen. Jetzt wartet Asterisk wohl ob noch was kommt... Wie kann ich das beschleunigen?
DigitTimeout und ResponseTimeout haben keine Effekt ich habe den ersten wert testweise mal auf 200 gesetzt.

exten => s,200,ResponseTimeout(200)
exten => s,201,DigitTimeout(2)
exten => s,202,DISA,no-password|local




-- Executing DigitTimeout("CAPI[contr1/560]/0", "200") in new stack
-- Set Digit Timeout to 200
-- Executing ResponseTimeout("CAPI[contr1/560]/0", "5") in new stack
-- Set Response Timeout to 5



Es dauert immer 10 Sekunden bis zum wählen. Warum?
 
DISA hat einen festen timout Wert und reagiert auch nicht auf z.B. '#'. Hier ist eine Code Aenderung notwendig.

Hiermit:
Code:
--- asterisk/apps/app_disa.c.orig       2005-05-04 23:52:40.604834962 +0200
+++ asterisk/apps/app_disa.c    2005-05-05 00:02:53.265561078 +0200
@@ -283,6 +291,12 @@
                        if (!k) continue; /* if getting password, continue doing it */
                          /* if this exists */

+                       if (j == '#') { /* user wants end of number, so strip off # */
+                               i--;
+                               exten[i] = 0;
+                               break;
+                       }
+
                        if (ast_ignore_pattern(ourcontext, exten)) {
                                play_dialtone(chan);
                                did_ignore = 1;
wird '#' als Ende-Zeichen akzeptiert.

Armin
 
So ich habe den Code hinter den "+" hinzugefügt und die Datei (unter /root/asterisk1.0.7/apps/ ist ja richtig??) gespeichert. Muss man die noch irgendwie compilieren? Weil auch nach dem Linux Neustart akzeptiert er die Raute noch nicht..

BTW, was muss man ändern, damit man den normalen deutschen Wählton bekommt? Momentan klingt das etwas unsauber, da wohl mehrere Töne übernandergelagert sind :(
 
Ja klar. Wenn Du den source-code geaendert hast, dann musst du neu compilieren und danach
app_disa.so installieren.

Armin
 
*hüstel* ich weiss ned wie das geht :(
Könntest du mir erklären wie man neu compiliert und man die app_disa.c installiert? :-/

Und hast du evtl noch eine Idee wegen dem deutschen DISA Freizeichen?
 
Die Töne sollten über die language= Einstellung verfügbar sein.

Zum bauen von Asterisk:
make
make install

Mehr kann ich zu Deinem System wohl nicht sagen.
(Ich benutze Asterisk in einem selbst erstellen embedded System und verwende die ELinOS Entwicklungsumgebung)

Armin
 
armincm schrieb:
Die Töne sollten über die language= Einstellung verfügbar sein.

Zum bauen von Asterisk:
make
make install

Mehr kann ich zu Deinem System wohl nicht sagen.
(Ich benutze Asterisk in einem selbst erstellen embedded System und verwende die ELinOS Entwicklungsumgebung)

Armin


Okay, make läuft gerade *bibber*
language= finde ich aber nicht in der app_disa.conf.
In sip.conf, capi.conf haber ich language=de schon immer drin. Wo stelle ich das für DISA ein?
 
gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE -O6 -march=i686 -DASTERISK_VERSION=\"1.0.7\" -DINSTALL_PREFIX=\"\" -DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" -DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" -DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" -DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" -DASTMODDIR=\"/usr/lib/asterisk/modules\" -DASTAGIDIR=\"/var/lib/asterisk/agi-bin\" -DBUSYDETECT_MARTIN -c -o utils.o utils.c
gcc -g -o asterisk -Wl,-E io.o sched.o logger.o frame.o loader.o config.o channel.o translate.o file.o say.o pbx.o cli.o md5.o term.o ulaw.o alaw.o callerid.o fskmodem.o image.o app.o cdr.o tdd.o acl.o rtp.o manager.o asterisk.o ast_expr.o dsp.o chanvars.o indications.o autoservice.o db.o privacy.o astmm.o enum.o srv.o dns.o aescrypt.o aestab.o aeskey.o utils.o editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a -ldl -lpthread -lncurses -lm -lresolv -lssl
/usr/lib/gcc-lib/i586-suse-linux/3.3.4/../../../../i586-suse-linux/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make: *** [asterisk] Error 1



ojeh.. was nun :( :( :(

OpenSSL habe ich installiert
 
Danke, ich glaube es liegt an OpenSSL Devel. Wie sieht das eigentlich aus, kann ich bei der gelegenheit gleich von 1.0.7 auf 1.0.9 updaten? Muss man dabei was beachten? Muss ich evtl. 1.0.7 deinstallieren? Oder einfach drüber? Bleiben die Einstellungen erhalten?
 
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.