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

GOTO($EXTEN) ???

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von kperas, 8 Apr. 2005.

  1. kperas

    kperas Neuer User

    Registriert seit:
    17 Jan. 2005
    Beiträge:
    156
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Forum,

    wie kann ich folgendes machen: Ich habe einen ISDN PTP Anschluss an ner Beronet BN4S0 und möchte, wenn jemand die "ptpStamm"+EXTEN wählt also in meinem Fall z. B. 10912 wobei 109 die ptpStamm ist und 12 die EXTENSION, dass mein * dann zur 12 geht. Im Moment habe ich das sehr unbefriedigend so gelöst:

    Code:
    [ptp]
    exten=> _${ptpStamm}XX,1,Dial(SIP/${EXTEN:3})
    
    Eigentlich möchte ich es aber so haben:

    Code:
    [ptp]
    exten=> _${ptpStamm}XX,1,GOTO(${EXTEN:3})
    
    Dann passiert aber folgendes:

    Code:
    asterisk*CLI> 
        -- Executing Goto("mISDN/1/329", "12") in new stack
        -- Goto (ptp,10912,12)
    Apr  8 08:49:16 WARNING[10948]: pbx.c:1945 ast_pbx_run: Timeout, but no rule 't' in context 'ptp'
    asterisk*CLI> 
    
    Ich sehe das doch richtig, dass ich mit GOTO in einen anderen Context springen kann oder?

    HAt jemand eine Idee, was ich falsch mache?

    Schöne Grüße
    Klaus
     
  2. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Code:
    perlin*CLI> show application goto
    perlin*CLI> 
      -= Info about application 'Goto' =- 
    
    [Synopsis]:
    Goto a particular priority, extension, or context
    
    [Description]:
      Goto([[context|]extension|]priority):  Set the  priority to the specified
    value, optionally setting the extension and optionally the context as well.
    The extension BYEXTENSION is special in that it uses the current extension,
    thus  permitting you to go to a different context, without specifying a
    specific extension. Always returns 0, even if the given context, extension,
    or priority is invalid.
    Wenn du also nur einen Parameter beim Goto angibst, wird das als Prioritaet genommen und nicht als Extension. Du musst es also so angeben:

    Code:
    Goto(${EXTEN:3},1)
    Und wenn du noch in einen anderen Kontext springen willst, sollte es so aussehen:

    Code:
    Goto(andererkontext,${EXTEN:3},1)
     
  3. kperas

    kperas Neuer User

    Registriert seit:
    17 Jan. 2005
    Beiträge:
    156
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Maik,
    danke für deine Antwort. Leider hauts noch nicht so hin, oder ich verstehs einfach noch nicht. Hier mal meine komplette extensions.conf:

    Code:
    [general]
    ;
    static=yes
    writeprotect=no
    [globals]
    ptpStamm=109
    
    [default]
    
    include=> 10
    ;include=> 11
    include=> 12
    include=> 14
    include=> 15
    ;include=> 16
    include=> 17
    include=> 18
    include=> 19
    include=> 20
    include=> 99
    include=> ptp
    
    ;exten=>_xx.,1,Dial,CAPI/109:${EXTEN}
    ;exten=>_xx.,2,Congestion
    
    [ptp]
    exten=> _${ptpStamm}XX,1,Goto(${EXTEN:3},1)
    exten=> _${ptpStamm}XX,2,Congestion
    exten=> _${ptpStamm}XX,102,Hangup
    
    exten=> _xx.,1,Dial,mISDN/g:TE/${EXTEN}
    exten=> _xx.,2,Congestion
    exten=> _xx.,102,Busy
    
    ;exten=>_9.,1,SetCallerID(5550109)
    ;exten=>_9.,2,SetCIDName(5550109)
    ;exten=>_9.,3,Dial(SIP/14)
    
    ;[capicall]
    ;exten=>109,1,Dial(SIP/14)
    ;exten=>110,1,Dial(SIP/20)
    
    
    [10]
    ;exten => 10,1,Dial(SIP/${EXTEN},60)
    exten => 10,1,Dial(SIP/10,10)
    exten => 10,2,Voicemail(12)
    exten => 10,5,Hangup
    exten => 10,102,Busy
    
    ;[11]
    ;exten => 11,1,Dial(SIP/11)
    ;exten => 11,2,Hangup
    ;exten => 11,102,Busy
    
    [12]
    exten => 12,1,System(echo "${DATETIME} - ${CALLERID}" >> /home/kperas/Documents/test.txt)
    exten => 12,2,System(echo "${DATETIME} - ${CALLERID} hat versucht Dich zu erreichen." | mail -s Anrufbenachrichtigung [email]klaus.peras@hob.de[/email] -r [email]asterisk@hob.de[/email])
    exten => 12,3,Dial(SIP/12,10)
    exten => 12,4,Voicemail(12)
    ;exten => 12,3,Answer
    ;exten => 12,4,Playback(vm-options)
    exten => 12,5,Hangup
    exten => 12,102,Busy
    
    [14]
    exten => 14,1,Dial(SIP/14)
    exten => 14,2,Hangup
    exten => 14,102,Busy
    
    [15]
    exten => 15,1,Dial(SIP/15)
    exten => 15,2,Hangup
    exten => 15,102,Busy
    
    [17]
    exten => 17,1,Dial(SIP/17)
    exten => 17,2,Hangup
    exten => 17,102,Busy
    
    [18]
    exten => 18,1,Dial(SIP/18)
    exten => 18,2,Hangup
    exten => 18,102,Busy
    
    [19]
    exten => 19,1,Dial(SIP/19)
    exten => 19,2,Hangup
    exten => 19,102,Busy
    
    [99]
    exten => 99,1,Dial(SIP/99,15)
    exten => 99,2,Hangup
    exten => 99,102,Busy
    
    ;exten => 99,1,System(echo "${DATETIME} - ${CALLERID}" >> /home/kperas/Documents/test.txt)
    exten => 99,1,System(echo "${DATETIME} - ${CALLERID} hat versucht Dich zu erreichen." | mail -s Anrufbenachrichtigung [email]klaus.wenzel@hob.de[/email] -r [email]asterisk@hob.de[/email])
    exten => 99,3,Dial(SIP/99,10)
    exten => 99,4,Voicemail(99)
    ;exten => 12,3,Answer
    ;exten => 12,4,Playback(vm-options)
    exten => 99,5,Hangup
    exten => 99,102,Busy
    
    [sipgate]
    exten => 555xxxx,1,Dial(SIP/12 ,20)
    
    Die Meldung in * sieht dann so aus:
    Code:
    asterisk*CLI> 
        -- Executing Goto("mISDN/1/329", "12|1") in new stack
        -- Goto (ptp,12,1)
    Apr  8 09:38:17 WARNING[10948]: pbx.c:1889 ast_pbx_run: Channel 'mISDN/1/329' sent into invalid extension '12' in context 'ptp', but no invalid handler
    asterisk*CLI> 
    

    Ich möchte also aus dem Context [ptp] in einen anderen z.b. [12] oder [13] oder irgendeine Nummer springen. ${EXTEN} ist ja schon mein Context in den ich springen möchte.
    Hast Du noch eine Idee?

    Schöne Grüße
    Klaus
     
  4. smurfix

    smurfix Neuer User

    Registriert seit:
    12 Okt. 2004
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Dein ptp-Kontext ist unklug -- entweder die ankommenden Nummern fangen mit ptpStamm an oder nicht. Beides im selben Kontext zu verwenden ist Unsinn.

    Ausserdem -- schau dir deinen Kontext doch mal genau an, die 12 matcht da einfach nicht -- "." ist "*eine* oder mehr folgende Ziffern".

    Übrigens ist das mit dem ptpStamm nicht so ganz einfach, je nach Vermittlung auf der anderen Seite kann da die Vorwahl mitkommen, und wenn dann kann diese als Präfix drinstehen oder als Nummerntyp. Der aktuelle chan-mISDN-CVS enthält dafür einen Patch von mir, der das handhabbar macht und die Nummern immer mit korrektem Präfix ausstattet. Sind dann zwar immer noch drei Matchregeln, aber immerhin.