.titleBar { margin-bottom: 5px!important; }

DISA Timeout beschleunigen?

Dieses Thema im Forum "Asterisk ISDN mit CAPI (chan_capi, chan_capi_cm)" wurde erstellt von D-Trix, 12 Juli 2005.

  1. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  2. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Versuchs mal mit DISA.
     
  3. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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 ;)
     
  4. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
    
    [...]
    
     
  5. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  6. armincm

    armincm Aktives Mitglied

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    1,006
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  7. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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 :(
     
  8. armincm

    armincm Aktives Mitglied

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    1,006
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja klar. Wenn Du den source-code geaendert hast, dann musst du neu compilieren und danach
    app_disa.so installieren.

    Armin
     
  9. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    *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?
     
  10. armincm

    armincm Aktives Mitglied

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    1,006
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  11. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    0

    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?
     
  12. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  13. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  14. D-Trix

    D-Trix Neuer User

    Registriert seit:
    11 Juli 2005
    Beiträge:
    127
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?