Makro funktioniert nicht unter Asterisk 1.4.6

robinsonR

Mitglied
Mitglied seit
17 Apr 2006
Beiträge
560
Punkte für Reaktionen
0
Punkte
16
Habe mir jetzt einen Asterisk 1.4.6 mit freepbx 2.3 auf Ubuntu installiert. Klappt eigentlich ganz wunderbar. Ich habe jetzt nur ein kleines Problem (hat unter Asterisk 1.2.X hervorragend funktioniert).
Hier ein Ausschnitt aus meiner extensions.conf
Code:
exten => s,n,Set(AMPUSERCID=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})})
exten => s,n,Set(CALLERID(all)=${AMPUSERCIDNAME} <${AMPUSERCID}>)
exten => s,n,Set(REALCALLERIDNUM=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n(report),Noop(TTL: ${TTL} ARG1: ${ARG1})
exten => s,n,GotoIf($[ "${ARG1}" = "SKIPTTL" ]?continue)

;exten => s,n,Macro(notify)

exten => s,n,Set(IP=${DB(clientip/${CDR(dst)})})
exten => s,n,Notify(${CALLERID(number)}|${CALLERID(name)}|${DB(AMPUSER/${CDR(dst)}/cidname)}/${IP})

exten => s,n(report2),Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])})
exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue)
exten => s,n,Wait(${RINGTIMER}) ; wait for a while, to give it a chance to be picked up by voicemail
exten => s,n,Answer()
exten => s,n,Wait(2)
exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding)
In dieser Form funktioniert alles bestens; möchte ich aber Zeilen 7 und 8 über einen Makro (Zeile 6) aufrufen, bricht der Wählvorgang genau beim Aufruf des Makros stehen. Der Makro befindet sich in extensions_custom.conf und das ist wiederum in der extensions.conf inkludiert. Ich habe schon feststellen müssen, dass DB-Aufrufe in 1.4 anders gemacht werden als in 1.2 damit sie funktionieren. Gibt es etwas, was sich bei den Makros geändert hat, oder was muss ich sonst noch ändern, damit es wieder über den Makro funktioniert?
 
was passiert denn auf der CLI wenn Du versuchst, den Makro aufzurufen?
wie sieht der Macro genau aus?
 
Also der Makro sieht so aus
Code:
[macro-notify]
exten => s,1,Set(IP=${DB(clientip/${CDR(dst)})})
exten => s,2,Notify(${CALLERID(number)}|${CALLERID(name)}|${DB(AMPUSER/${CDR(dst)}/cidname)}/${IP})

Und sobald ich eine Nummer wähle, erhalte ich auf der Konsole:
Code:
asterisk1*CLI> 
    -- Executing [51@from-internal:1] Macro("SIP/52-082171a8", "exten-vm|novm|51") in new stack
    -- Executing [s@macro-exten-vm:1] Macro("SIP/52-082171a8", "user-callerid") in new stack
    -- Executing [s@macro-user-callerid:1] NoOp("SIP/52-082171a8", "user-callerid: device 52") in new stack
    -- Executing [s@macro-user-callerid:2] Set("SIP/52-082171a8", "AMPUSER=52") in new stack
    -- Executing [s@macro-user-callerid:3] GotoIf("SIP/52-082171a8", "0?report") in new stack
    -- Executing [s@macro-user-callerid:4] GotoIf("SIP/52-082171a8", "0?start") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/52-082171a8", "REALCALLERIDNUM=52") in new stack
    -- Executing [s@macro-user-callerid:6] NoOp("SIP/52-082171a8", "REALCALLERIDNUM is 52") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/52-082171a8", "AMPUSER=52") in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/52-082171a8", "AMPUSERCIDNAME=SJPhone") in new stack
    -- Executing [s@macro-user-callerid:9] GotoIf("SIP/52-082171a8", "0?report") in new stack
    -- Executing [s@macro-user-callerid:10] Set("SIP/52-082171a8", "AMPUSERCID=52") in new stack
    -- Executing [s@macro-user-callerid:11] Set("SIP/52-082171a8", "CALLERID(all)=SJPhone <52>") in new stack
    -- Executing [s@macro-user-callerid:12] Set("SIP/52-082171a8", "REALCALLERIDNUM=52") in new stack
    -- Executing [s@macro-user-callerid:13] NoOp("SIP/52-082171a8", "TTL:  ARG1: novm") in new stack
    -- Executing [s@macro-user-callerid:14] GotoIf("SIP/52-082171a8", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:15] Macro("SIP/52-082171a8", "notify") in new stack
  == Spawn extension (macro-notify, s, 1) exited non-zero on 'SIP/52-082171a8' in macro 'notify'
  == Spawn extension (macro-notify, s, 1) exited non-zero on 'SIP/52-082171a8' in macro 'user-callerid'
  == Spawn extension (macro-notify, s, 1) exited non-zero on 'SIP/52-082171a8' in macro 'exten-vm'
  == Spawn extension (macro-notify, s, 1) exited non-zero on 'SIP/52-082171a8'
asterisk1*CLI>
Auch von extern einkommende Anrufe erzeugen das.
 
Probier mal bitte im Macro

Code:
exten => s,1,NoOp,Set(IP=${DB(clientip/${CDR(dst)})})

was passiert da auf der CLI?
 
Benenne mal den Macro um, damit er nicht genauso heißt wie ein asterisk-interner Befehl/Funktion.

Es sieht danach aus, daß der Makro gar nicht erst angesprungen wird, denn zumindest das NoOp müßte ja problemlos funktionieren.
 
Kostenlos!

Statistik des Forums

Themen
248,095
Beiträge
2,281,229
Mitglieder
377,296
Neuestes Mitglied
beetlesch