GOTO($EXTEN) ???

kperas

Neuer User
Mitglied seit
17 Jan 2005
Beiträge
156
Punkte für Reaktionen
0
Punkte
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
 
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)
 
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][email protected][/email] -r [email][email protected][/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][email protected][/email] -r [email][email protected][/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
 
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.
 
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.