Anrufe extern --> Asterisk SIP-Gerät

die Ausgabe der EXTEN liefert folgendes

-- Executing NoOp("SIP/D1090181003-f2e8", "s") in new stack
-- Executing NoOp("SIP/D1090181003-f2e8", "h") in new stack


bei Ausgabe des SIPGetHeader folgendes

-- Executing SIPGetHeader("SIP/D1090181003-29bf", "testvariable=To") in new stack
Nov 25 17:09:01 WARNING[28593]: chan_sip.c:12802 sip_getheader: SIPGetHeader is deprecated, use the SIP_HEADER function instead.
-- Executing NoOp("SIP/D1090181003-29bf", "<sip:[email protected]:5060;user=phone>") in new stack
-- Executing SIPGetHeader("SIP/D1090181003-29bf", "testvariable=To") in new stack

wie kann ich diesen nun "zurechtschneiden"?
 
wenn ich nun bspw.

exten => _.,2,NoOp(${testvariable:10})

verwende dann steht vorne genau das, was ich haben möchte, nämlich die gewählte Rufnummer!

Wie kriege ich den Rest, der hinter der Rufnummer steht weg (ab dem @)?
 
so, habe das Extrahieren gelöst mit

Code:
exten => _.,1,SIPGetHeader(Header=To)
exten => _.,2,Set(NUMMER=${Header:-38:8})               ;schneidet aus dem SIP-Header die angerufene Rufnummer heraus
exten => _.,3,NoOp(${NUMMER})


aber wie kriege ich jetzt die Unterscheidung nach dieser Rufnummer hin. Mein Kontext sieht jetzt so aus

Code:
[default]                                               ;incoming
exten => _.,1,SIPGetHeader(Header=To)
exten => _.,2,Set(NUMMER=${Header:16:2})                ;schneidet aus dem SIP-Header die angerufene Rufnummer (2 Stellen) heraus
exten => _.,3,NoOp(${NUMMER})                           ;gibt Nummer aus, diese wird nun verwendet um Aktionen nach angerufener Nummer zu unterscheiden
;exten => _.,3,NoOp(${CALLERIDNUM})                      ;Ausgabe der Nummer des Anrufers

exten => _.,4,GotoIf($["{NUMMER}" = "14"]?7:5)          ;wenn NUMMER 14 ist, dann gehe zu Befehl mit Priorität 7, ansonsten 5
exten => _.,5,GotoIf($["{NUMMER}" = "04"]?6:8)          ;wenn NUMMER 04 ist, dann gehe zu Befehl mit Priorität 6, ansonsten 8

exten => _.,6,Dial(SIP/1004,20)
exten => _.,7,Dial(${FAXNUMMER})

exten => _.,8,Hangup                                    ;auflegen


funktioniert aber nicht, er scheint die Bedigung falsch zu machen, warum?

Code:
 -- Executing Set("SIP/D1090181003-3272", "NUMMER=14") in new stack
    -- Executing NoOp("SIP/D1090181003-3272", "14") in new stack
    -- Executing GotoIf("SIP/D1090181003-3272", "0?7:5") in new stack
    -- Goto (default,s,5)
    -- Executing GotoIf("SIP/D1090181003-3272", "0?6:8") in new stack
    -- Goto (default,s,8)
    -- Executing Hangup("SIP/D1090181003-3272", "") in new stack
  == Spawn extension (default, s, 8) exited non-zero on 'SIP/D1090181003-3272'
    -- Executing SIPGetHeader("SIP/D1090181003-3272", "Header=To") in new stack
    -- Executing Set("SIP/D1090181003-3272", "NUMMER=14") in new stack
    -- Executing NoOp("SIP/D1090181003-3272", "14") in new stack
    -- Executing GotoIf("SIP/D1090181003-3272", "0?7:5") in new stack
    -- Goto (default,h,5)
    -- Executing GotoIf("SIP/D1090181003-3272", "0?6:8") in new stack
    -- Goto (default,h,8)
    -- Executing Hangup("SIP/D1090181003-3272", "") in new stack
 
Kostenlos!

Statistik des Forums

Themen
247,286
Beiträge
2,265,685
Mitglieder
375,851
Neuestes Mitglied
ruby712