Macro-pre-main in MD 7.0.6: Bug oder Fehler des Admin?

Hallo,

vermutlich seit dem Update auf 7.0.6 wird auf unserem MD das Macro pre-main nicht mehr ausgeführt.
Ich habe die Einstellungen noch einmal mit der Anleitung unter http://wiki.pascom.net/confluence/display/MD76DE/Anrufablauf+per+Skript+manipulieren verglichen, aber keinen Fehler gefunden.
Im Dialplan wird mir das Macro korrekt angezeigt:

Context ‘macro-pre-main’ created by ‘pbx_config’ ]
‘s’ => 1. SYSTEM(/bin/echo -e ‘CallerID: ${CALLERID(all)},Zeitpunkt: ${STRFTIME(${EPOCH},%H:%M:%S %d.%m.%Y)}’ >> /tmp/nvtel.log) [pbx_config]

Hier die Ausgabe aus dem CLI:

== Using SIP RTP CoS mark 5
– Executing [3#68032889@mdc_berofix-d8df0d00146a:1] Goto(“SIP/d8df0d00146a-00000132”, “mdc_incoming-gw8,68032xxx,1”) in new stack
– Goto (mdc_incoming-gw8,68032xxx,1)
– Executing [68032xxx@mdc_incoming-gw8:1] Set(“SIP/d8df0d00146a-00000132”, “MDC_CALLER_NUM_TRUNK=anonymous”) in new stack
– Executing [68032xxx@mdc_incoming-gw8:2] Set(“SIP/d8df0d00146a-00000132”, “MDC_CALLEE_NUM_TRUNK=68032xxx”) in new stack
– Executing [68032xxx@mdc_incoming-gw8:3] Goto(“SIP/d8df0d00146a-00000132”, “mdc_trunk-8,s,1”) in new stack
– Goto (mdc_trunk-8,s,1)
– Executing [s@mdc_trunk-8:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,callee number: 68032xxx caller number: anonymous”) in new stack
callee number: 68032xxx caller number: anonymous
– Executing [s@mdc_trunk-8:2] GosubIf(“SIP/d8df0d00146a-00000132”, “0?sub_internat,s,1(CALLERID(num),anonymous,00)”) in new stack
– Executing [s@mdc_trunk-8:3] Gosub(“SIP/d8df0d00146a-00000132”, “sub_nat2int,s,1(MDC_CALLER_NUM_INTERNAT,anonymous,00,49,0,721)”) in new stack
– Executing [s@sub_nat2int:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,sub_nat2int:: variable: MDC_CALLER_NUM_INTERNAT - CALLERID(num): anonymous - intVAZ: 00 - lkz: 49 - natVAZ: 0 - onKz: 721”) in new stack
sub_nat2int:: variable: MDC_CALLER_NUM_INTERNAT - CALLERID(num): anonymous - intVAZ: 00 - lkz: 49 - natVAZ: 0 - onKz: 721
– Executing [s@sub_nat2int:2] GotoIf(“SIP/d8df0d00146a-00000132”, “1?s-int,1”) in new stack
– Goto (sub_nat2int,s-int,1)
– Executing [s-int@sub_nat2int:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,international”) in new stack
international
– Executing [s-int@sub_nat2int:2] Set(“SIP/d8df0d00146a-00000132”, “MDC_CALLER_NUM_INTERNAT=anonymous”) in new stack
– Executing [s-int@sub_nat2int:3] Return(“SIP/d8df0d00146a-00000132”, “”) in new stack
– Executing [s@mdc_trunk-8:4] Set(“SIP/d8df0d00146a-00000132”, “CALLERID(num)=anonymous”) in new stack
– Executing [s@mdc_trunk-8:5] Gosub(“SIP/d8df0d00146a-00000132”, “sub_int2nat,s,1(MDC_CALLER_NUM_NAT,anonymous,00,49,0,721)”) in new stack
– Executing [s@sub_int2nat:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,sub_int2nat:: variable: MDC_CALLER_NUM_NAT - exten: anonymous - intVAZ: 00 - lkz: 49 - natVAZ: 0 - onKz: 721”) in new stack
sub_int2nat:: variable: MDC_CALLER_NUM_NAT - exten: anonymous - intVAZ: 00 - lkz: 49 - natVAZ: 0 - onKz: 721
– Executing [s@sub_int2nat:2] GotoIf(“SIP/d8df0d00146a-00000132”, “1?nat”) in new stack
– Goto (sub_int2nat,s,4)
– Executing [s@sub_int2nat:4] Set(“SIP/d8df0d00146a-00000132”, “MDC_CALLER_NUM_NAT=anonymous”) in new stack
– Executing [s@sub_int2nat:5] Return(“SIP/d8df0d00146a-00000132”, “”) in new stack
– Executing [s@mdc_trunk-8:6] Set(“SIP/d8df0d00146a-00000132”, “CALLERID(num)=anonymous”) in new stack
– Executing [s@mdc_trunk-8:7] UserEvent(“SIP/d8df0d00146a-00000132”, “ResolveCallerName,Strategy: default,Outbound: 0,Channel: SIP/d8df0d00146a-00000132”) in new stack
– Executing [s@mdc_trunk-8:8] Wait(“SIP/d8df0d00146a-00000132”, “0.25”) in new stack
– Executing [s@mdc_trunk-8:9] Verbose(“SIP/d8df0d00146a-00000132”, “1,MDC_RESOLVENAME_HITS = 1”) in new stack
MDC_RESOLVENAME_HITS = 1
– Executing [s@mdc_trunk-8:10] Verbose(“SIP/d8df0d00146a-00000132”, “1,CALLERID(name) = Anonymous”) in new stack
CALLERID(name) = Anonymous
– Executing [s@mdc_trunk-8:11] Set(“SIP/d8df0d00146a-00000132”, “MDC_NUMPREFIX_TRUNK=”) in new stack
– Executing [s@mdc_trunk-8:12] Goto(“SIP/d8df0d00146a-00000132”, “mdc_mapping-8,68032xxx,1”) in new stack
– Goto (mdc_mapping-8,68032xxx,1)
– Executing [68032xxx@mdc_mapping-8:1] Set(“SIP/d8df0d00146a-00000132”, “CHANNEL(language)=de”) in new stack
– Executing [68032xxx@mdc_mapping-8:2] Verbose(“SIP/d8df0d00146a-00000132”, “1,mapping from 68032xxx to 99”) in new stack
mapping from 68032xxx to 99
– Executing [68032xxx@mdc_mapping-8:3] Goto(“SIP/d8df0d00146a-00000132”, “mdc_external,99,1”) in new stack
– Goto (mdc_external,99,1)
– Executing [99@mdc_external:1] SIPAddHeader(“SIP/d8df0d00146a-00000132”, "“Alert-Info:<http://www.notused.de>;info=alert-external;x-line-id=0"”) in new stack
– Executing [99@mdc_external:2] GosubIf(“SIP/d8df0d00146a-00000132”, “1?sub_initcall,s,1(ext,99)”) in new stack
– Executing [s@sub_initcall:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,sub_initcall descent: ext exten: 99”) in new stack
sub_initcall descent: ext exten: 99
– Executing [s@sub_initcall:2] GosubIf(“SIP/d8df0d00146a-00000132”, “1?sub_initloop,s,1”) in new stack
– Executing [s@sub_initloop:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,initial loop”) in new stack
initial loop
– Executing [s@sub_initloop:2] Set(“SIP/d8df0d00146a-00000132”, “MDC_ALIAS_HOP=0”) in new stack
– Executing [s@sub_initloop:3] Return(“SIP/d8df0d00146a-00000132”, “”) in new stack
– Executing [s@sub_initcall:3] Set(“SIP/d8df0d00146a-00000132”, “__MDC_DIALDESCENT=ext”) in new stack
– Executing [s@sub_initcall:4] Goto(“SIP/d8df0d00146a-00000132”, “ext,1”) in new stack
– Goto (sub_initcall,ext,1)
– Executing [ext@sub_initcall:1] Set(“SIP/d8df0d00146a-00000132”, “__MDC_DIALCALLERNUMINIT=anonymous”) in new stack
– Executing [ext@sub_initcall:2] Set(“SIP/d8df0d00146a-00000132”, “__MDC_DIALCALLEENUMINIT=68032xxx”) in new stack
– Executing [ext@sub_initcall:3] Return(“SIP/d8df0d00146a-00000132”, “”) in new stack
– Executing [99@mdc_external:3] Goto(“SIP/d8df0d00146a-00000132”, “main,99,1”) in new stack
– Goto (main,99,1)
– Executing [99@main:1] Gosub(“SIP/d8df0d00146a-00000132”, “sub_defcall,s,1(99)”) in new stack
– Executing [s@sub_defcall:1] Set(“SIP/d8df0d00146a-00000132”, “__MDC_ALIAS_HOP=1”) in new stack
– Executing [s@sub_defcall:2] Set(“SIP/d8df0d00146a-00000132”, “__MDC_DIALCALLEENUM=99”) in new stack
– Executing [s@sub_defcall:3] Set(“SIP/d8df0d00146a-00000132”, “__MDC_DIALCALLERNUM=anonymous”) in new stack
– Executing [s@sub_defcall:4] Set(“SIP/d8df0d00146a-00000132”, “__MDC_DIALCHANNELNAME=d8df0d00146a”) in new stack
– Executing [s@sub_defcall:5] GotoIf(“SIP/d8df0d00146a-00000132”, “1?nozap”) in new stack
– Goto (sub_defcall,s,8)
– Executing [s@sub_defcall:8] Set(“SIP/d8df0d00146a-00000132”, “__MDC_DIALCALLERNAME=Anonymous”) in new stack
– Executing [s@sub_defcall:9] Return(“SIP/d8df0d00146a-00000132”, “”) in new stack
– Executing [99@main:2] Goto(“SIP/d8df0d00146a-00000132”, “mdc_distribute,99,1”) in new stack
– Goto (mdc_distribute,99,1)
– Executing [99@mdc_distribute:1] Gosub(“SIP/d8df0d00146a-00000132”, “sub_user,s,1(callee,14,mitarbeiter,Mitarbeiter,99,99)”) in new stack
– Executing [s@sub_user:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,sub_user mode callee”) in new stack
sub_user mode callee
– Executing [s@sub_user:2] Goto(“SIP/d8df0d00146a-00000132”, “s-callee,1”) in new stack
– Goto (sub_user,s-callee,1)
– Executing [s-callee@sub_user:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,sub_user user id: 14 - user: mitarbeiter - realname: Mitarbeiter - own mailbox: 99 - watched mailbox: 99”) in new stack
sub_user user id: 14 - user: mitarbeiter - realname: Mitarbeiter - own mailbox: 99 - watched mailbox: 99
– Executing [s-callee@sub_user:2] Set(“SIP/d8df0d00146a-00000132”, “_MDC_CALLEE_USER_ID=14”) in new stack
– Executing [s-callee@sub_user:3] Set(“SIP/d8df0d00146a-00000132”, “_MDC_CALLEE_ACC_NAME=mitarbeiter”) in new stack
– Executing [s-callee@sub_user:4] Set(“SIP/d8df0d00146a-00000132”, “_MDC_CALLEE_ACC_REALNAME=Mitarbeiter”) in new stack
– Executing [s-callee@sub_user:5] Set(“SIP/d8df0d00146a-00000132”, “_MDC_CALLEE_VM_OWN=99”) in new stack
– Executing [s-callee@sub_user:6] Set(“SIP/d8df0d00146a-00000132”, “_MDC_CALLEE_VM_WATCHED=99”) in new stack
– Executing [s-callee@sub_user:7] Return(“SIP/d8df0d00146a-00000132”, “”) in new stack
– Executing [99@mdc_distribute:2] Goto(“SIP/d8df0d00146a-00000132”, “mdc_ident-14,99,1”) in new stack
– Goto (mdc_ident-14,99,1)
– Executing [99@mdc_ident-14:1] NoOp(“SIP/d8df0d00146a-00000132”, “alias-check:: call forwarding from 99 - 0”) in new stack
– Executing [99@mdc_ident-14:2] GotoIf(“SIP/d8df0d00146a-00000132”, “0?99-uml,1:99-dial,1”) in new stack
– Goto (mdc_ident-14,99-dial,1)
– Executing [99-dial@mdc_ident-14:1] Set(“SIP/d8df0d00146a-00000132”, “__MDC_EXTEN=99”) in new stack
– Executing [99-dial@mdc_ident-14:2] Gosub(“SIP/d8df0d00146a-00000132”, “sub_prefix-99,ext,1”) in new stack
– Executing [ext@sub_prefix-99:1] Verbose(“SIP/d8df0d00146a-00000132”, “1,no action”) in new stack
no action
– Executing [ext@sub_prefix-99:2] Return(“SIP/d8df0d00146a-00000132”, “”) in new stack
– Executing [99-dial@mdc_ident-14:3] GotoIf(“SIP/d8df0d00146a-00000132”, “0?99-unavail,1”) in new stack
– Executing [99-dial@mdc_ident-14:4] GotoIf(“SIP/d8df0d00146a-00000132”, “0?99-busy,1”) in new stack
– Executing [99-dial@mdc_ident-14:5] Gosub(“SIP/d8df0d00146a-00000132”, “sub_main-99,ext,1”) in new stack
– Executing [ext@sub_main-99:1] Set(“SIP/d8df0d00146a-00000132”, “__PICKUPMARK=99”) in new stack
– Executing [ext@sub_main-99:2] Set(“SIP/d8df0d00146a-00000132”, “__SPYGROUP=99”) in new stack
– Executing [ext@sub_main-99:3] Dial(“SIP/d8df0d00146a-00000132”, “Local/99@mdc_diallocation”) in new stack
– Called Local/99@mdc_diallocation
– Executing [99@mdc_diallocation:1] Verbose(“Local/99@mdc_diallocation-000002c9;2”, “1,dial to 99 for user 14”) in new stack
dial to 99 for user 14
– Executing [99@mdc_diallocation:2] Set(“Local/99@mdc_diallocation-000002c9;2”, “MDC_EXTEN=99”) in new stack
– Executing [99@mdc_diallocation:3] Gosub(“Local/99@mdc_diallocation-000002c9;2”, “sub_split-user,s,1(14)”) in new stack
– Executing [s@sub_split-user:1] Verbose(“Local/99@mdc_diallocation-000002c9;2”, “1,get locations for for: 14”) in new stack
get locations for for: 14
– Executing [s@sub_split-user:2] GotoIf(“Local/99@mdc_diallocation-000002c9;2”, “0?s-zero,1”) in new stack
– Executing [s@sub_split-user:3] Set(“Local/99@mdc_diallocation-000002c9;2”, “TMP_LOCATIONS=12;0”) in new stack
– Executing [s@sub_split-user:4] Set(“Local/99@mdc_diallocation-000002c9;2”, “TMP_STATIC_ID=12”) in new stack
– Executing [s@sub_split-user:5] Verbose(“Local/99@mdc_diallocation-000002c9;2”, “1,static id: 12”) in new stack
static id: 12
– Executing [s@sub_split-user:6] Set(“Local/99@mdc_diallocation-000002c9;2”, “TMP_DYN_ID=0”) in new stack
– Executing [s@sub_split-user:7] Verbose(“Local/99@mdc_diallocation-000002c9;2”, “1,dynamic id: 0”) in new stack
dynamic id: 0
– Executing [s@sub_split-user:8] Return(“Local/99@mdc_diallocation-000002c9;2”, “”) in new stack
– Executing [99@mdc_diallocation:4] GotoIf(“Local/99@mdc_diallocation-000002c9;2”, “0?invalid,1”) in new stack
– Executing [99@mdc_diallocation:5] GotoIf(“Local/99@mdc_diallocation-000002c9;2”, “0?dynamic,1”) in new stack
– Executing [99@mdc_diallocation:6] GotoIf(“Local/99@mdc_diallocation-000002c9;2”, “1?static,1”) in new stack
– Goto (mdc_diallocation,static,1)
– Executing [static@mdc_diallocation:1] Dial(“Local/99@mdc_diallocation-000002c9;2”, “Local/ext@mdc_locallocation-12”) in new stack
– Called Local/ext@mdc_locallocation-12
– Executing [ext@mdc_locallocation-12:1] Dial(“Local/ext@mdc_locallocation-12-000002ca;2”, “Local/ext-37@mdc_localdevice-12”) in new stack
– Called Local/ext-37@mdc_localdevice-12
– Executing [ext-37@mdc_localdevice-12:1] Verbose(“Local/ext-37@mdc_localdevice-12-000002cb;2”, “1,Dialing with delay of 0 seconds for 20 seconds”) in new stack
Dialing with delay of 0 seconds for 20 seconds
– Executing [ext-37@mdc_localdevice-12:2] Dial(“Local/ext-37@mdc_localdevice-12-000002cb;2”, “SIP/8otRayTuY2e870a,20”) in new stack
== Using SIP RTP CoS mark 5
– Called SIP/8otRayTuY2e870a
– SIP/8otRayTuY2e870a-00000133 is ringing

Guten Morgen,

die Verwendung der Application macro ist im Asterisk schon seit geraumer Zeit abgekündigt. Deshalb haben wir dies in der 7.06 entsprechend modernisiert, sprich Makros wurden durch parametrierbare Unterroutinen ersetzt.
Es sollte ausreichen, dass du den Kontext auf sub_pre-main änderst und am Ende (an den Punkten wo das Skript verlassen werden soll) ein RETURN() einbaust.

Grüße
Markus

Hallo Markus,

das verstehe ich jetzt aber so, dass die aktuelle Dokumentation unter http://wiki.pascom.net/confluence/display/MD76DE/Anrufablauf+per+Skript+manipulieren mit dem aktuellen System nichts mehr zu tun hat.

Dort steht unter anderem:

“Mit einem Skript pre-main können solche Anpassungen leicht umgesetzt werden”

"Legen Sie einfach ein neues Skript mit folgenden Daten unter Basisdaten an:

Bezeichnung; kann frei vergeben werden
Kontext;  "macro-pre-main" als Namen für den Kontext verwenden, nur dann wird das Skript korrekt ausgeführt werden
Einbinden; NEIN auswählen
Durchwahl; vergeben Sie keine Durchwahl
Beschreibung; kann ebenso frei vergeben werden

Unter dem Reiter Skript können Sie dann das Skript definieren, z.B."

Verwirrte Grüsse,

Stefan

Hallo Stefan,

danke für die Info. Da war die Doku an der Stelle bzgl. des Namens für den Kontext noch nicht aktuell.

Klappts den nun?

Grüße
Markus

Hallo Markus,

alles klar, Danke, funktioniert nun wieder ;-))

Gruß,

Stefan

Wunderbar!

Grüße
Markus