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

[VERSTÄNDNISFRAGE] Waitfordigits-Einsatz

Dieses Thema im Forum "Asterisk ISDN mit mISDN" wurde erstellt von HobbyStern, 4 Nov. 2006.

  1. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Hallo Alle,

    ggf. kann mir jemand die Syntax und den Einsatz von WaitForDigits näher bringen, hab anscheinend ein Brett vor dem Kopf oder bin zu "wach" ;)

    Die Syntax lautet folgend :

    Code:
    [Synopsis]
    Wait for digits
    
    [Description]
     waitfordigits([milliseconds]|[maxnum]|addexten|<control>):
     Waits for given milliseconds for overlapdialed digits
     If you pass maxnum, it waits only till maxnum digits is dialed, then
     exits immediately
     The argument 'addexten' indicates wether the dialed digits should be added
     to the given channel
     The channel Variable ALREADY_WAITED indicates wether we have already waited
     If this Variable is set, the application exits immediatly
     The control option allows you to send the given control Number in terms
     of AST_CONTROL_XX (asterisk/include/asterisk/frame.h) Numbers to this 
     channel before extiting. In q.931 it makes a lot of sense to send a 
     Proceeding in this case which means control=15
    
    Also zB.:

    Code:
    exten => s,1,Waitfordigits(<Wartezeit/ms>,<Nummernlänge>,true,<Schnitt>)
    

    Ich habe einen Anlagenanschluss mit 12345 (5 Zahlen + endende "0").
    Wählt nun jemand eine Nebenstelle hinzu sähe die Nummer 12345 + Nebenstelle 10 so aus : 1234510.

    Ich möchte gerne das waitfordigits die letzte Zahl abwartet, wenn sie kommt soll er sie einsetzen.

    Sorry wenn ich so eine Basic hier frage - aber ich habe anscheinend heute und die letzten Tage echt ein Brett vor dem Kopf...

    Grüsse, Stefan (der bald Urlaub hat(bzw. brauch))
     
  2. crich

    crich Mitglied

    Registriert seit:
    1 Sep. 2005
    Beiträge:
    529
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Also waitfordigits fügt die letzten Ziffern nur hinzu wenn du als 3. Argument "addexten" übergibst. ABER: chan_misdn fügt nachgewählte Ziffern automatisch hinzu, deshalb muss man das 3. argument nicht setzen, ich glaube chan_zap macht das auch.
     
  3. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Ich habe das ganze jetzt mal ausprobiert, hin und her, leider bleibt die fehlende Zahl die fehlende ?!

    Das war der Aufbau :
    Code:
    exten => _12345X,1,Waitfordigits(6000,7,addexten)
    exten => _12345X,2,Verbose(* * Waited4Digits von ${CALLERIDNUM} und die Nummer ${EXTEN} kam heraus)
    exten => _12345X,3,Goto(isdn2,,1)
    ; Syntax : waitfordigits([milliseconds]|[maxnum]|addexten|<control>)
    
    Ich habe mit einem analogen Anschluss angerufen und die Nummer 12345-24 gewählt, an kam die Nummer 12345-2 , wait4digits hat gewartet und dann ausgespuckt das es nichts mehr zu warten gäbe und die 12345-2 uebergeben.

    Code:
    Nov  9 11:26:22 VERBOSE[13234] logger.c:     -- Executing waitfordigits("mISDN/2-1", "6000|7|addexten") in new stack
    Nov  9 11:26:22 VERBOSE[13234] logger.c: You passed timeout:6000 maxnum:7 addexten:0 control:0
    Nov  9 11:26:28 VERBOSE[13234] logger.c: Not Overwriting extension:12345-6 with new Number: 12345-6
    Nov  9 11:26:28 VERBOSE[13234] logger.c: Not Sending any control to Channel 12345-6 state is 5
    Nov  9 11:26:28 VERBOSE[13234] logger.c:     -- Executing Verbose("mISDN/2-1", "* * Waited 4 Digits von <<ANRUFER>> und die Nummer 12345-6 kam heraus") in new st$
    
    ich habe es auch mal mit "addexten:7" ausprobiert und auch die Variable "true" genommen.

    Es ist schade das es zu waitfordigits nur diese sehr spärliche Info von markster gibt.

    Mache ich etwas falsch ?

    Grüsse, Stefan
     
  4. otmar.ganahl

    otmar.ganahl Neuer User

    Registriert seit:
    9 Okt. 2006
    Beiträge:
    14
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Stefan,
    wir haben an einer anderen Stelle darüber schon diskutiert, aber nun hier noch einmal, vielleicht hilft der Hinweis weiter um das Problem einzugrenzen:


    Ich habe änliches Verhalten, wie du es schilderst.

    Per WaitForDigits(...) kann ich die Durchwahlen von Analogtelefonen abwarten. Dies funktioniert soweit gut, allerdings nur dann, wenn beim Analogtelefon abgehoben wird und dann gewählt wird.

    Modernere Analogtelefone (bei meiner Testumgebung im Speziellen ein GIGASET) erlauben aber auch zuerst das Wählen der Ziffern, um dann z.B. per grüner Taste die gesamten Ziffern "in einem Schlag" zu wählen. In diesem Falle verhält sich misdn bei mir nicht richtig. Auch mit Verwendung von WaitForDigits wird nur die 1. Ziffer der gewählten Durchwahl vom Treiber an Asterisk übergeben. Die letzten zwei Ziffern (ich verwende 2-stellige Durchwahlen) werden nicht dedektiert. Teilweise kann ich das Verhalten auch durch sehr schnelles Wählen am Analogtelefon bewirken.


    Gruß Otmar
     
  5. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Ich kann das hier 1a simulieren in dem ich mich an folgendes Kochrezept halte :

    - analoge Amtsleitung
    - Telefon von der TKom - welches die nummer erst annimmt und dann auf einen Schlag absendet

    Es ist so gut wie 100%ig das diese Konstellation Müll liefert.

    Leider haben anscheinend meine Steuerberater und manche Kunden genau dieses und jedes Mal ist Ärger und Beschimpfung vorprogrammiert ... :mad:

    Grüsse, Stefan
     
  6. crich

    crich Mitglied

    Registriert seit:
    1 Sep. 2005
    Beiträge:
    529
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nochmal zur Klarheit, die problematische Konstellation sieht so aus :

    Analog Fon (mit Blockwahl) <----> TELEKOM <---> chan_misdn <---> waitfordigits <---> Asterisk

    ?
     
  7. otmar.ganahl

    otmar.ganahl Neuer User

    Registriert seit:
    9 Okt. 2006
    Beiträge:
    14
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Christian,
    exakt so!

    Wenn mit dem Analogtelefon die Ziffern einzeln gewählt werden, dann klappt es tadelos. Wenn mit Analogtelefon "Blockwahl" gewählt wird, dann kommt bei mir eine Extension an, die der ersten Ziffer der Durchwahl entspricht.

    Gruß Otmar
     
  8. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Problem besteht immer noch, nicht gelöst.
     
  9. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet