7.10.2 - Skript default013 - def_transfer funktioniert nicht

Hallo,

wie hier beschrieben wollte ich Einrichten, das ein Anrug der bei einem “Blindtransfer” nicht entgegen genommen wurde wieder zurück kommt.

Leider funktioniert das nicht. Ich habe das Skript bei “Benutzer/Extern nachher” eingebunden.

siehe:


...
    -- Local/782@mdc_diallocation-000002af;1 answered IAX2/mdc_trunk_conf-2-1952
  == Spawn extension (mdc_localdevice-2, ext-1, 2) exited non-zero on 'Local/ext-1@mdc_localdevice-2-000002b1;2'
  == Spawn extension (mdc_locallocation-2, ext, 2) exited non-zero on 'Local/ext@mdc_locallocation-2-000002b0;2'
  == Spawn extension (mdc_diallocation, static, 1) exited non-zero on 'Local/782@mdc_diallocation-000002af;2'
  == Spawn extension (mdc_transfer, 781, 1) exited non-zero on 'IAX2/mdc_trunk_conf-2-1952'
    -- Executing [781@mdc_transfer:1] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,>>>mdc_transfer CALLERID(num): ...363... - CALLERID(name): CPS Philipp Handy") in new stack
 >>>mdc_transfer CALLERID(num): ...363... - CALLERID(name): CPS Philipp Handy
    -- Executing [781@mdc_transfer:2] Set("IAX2/mdc_trunk_conf-2-1952", "MDC_EXTEN=781") in new stack
    -- Executing [781@mdc_transfer:3] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,SIPREFERRINGCONTEXT: ") in new stack
 SIPREFERRINGCONTEXT:
    -- Executing [781@mdc_transfer:4] GotoIf("IAX2/mdc_trunk_conf-2-1952", "0?transfer,1:forward,1") in new stack
    -- Goto (mdc_transfer,forward,1)
    -- Executing [forward@mdc_transfer:1] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,forward") in new stack
 forward
    -- Executing [forward@mdc_transfer:2] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,VAR_TRANSFER_DIRECTION: dst") in new stack
 VAR_TRANSFER_DIRECTION: dst
    -- Executing [forward@mdc_transfer:3] GotoIf("IAX2/mdc_trunk_conf-2-1952", "1?client,1") in new stack
    -- Goto (mdc_transfer,client,1)
    -- Executing [client@mdc_transfer:1] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,transfer via drag and drop") in new stack
 transfer via drag and drop
    -- Executing [client@mdc_transfer:2] Set("IAX2/mdc_trunk_conf-2-1952", "CHANNEL(language)=de") in new stack
    -- Executing [client@mdc_transfer:3] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,VAR_TRANSFER_DIRECTION: dst") in new stack
 VAR_TRANSFER_DIRECTION: dst
    -- Executing [client@mdc_transfer:4] GotoIf("IAX2/mdc_trunk_conf-2-1952", "0?caller:callee") in new stack
    -- Goto (mdc_transfer,client,5)
    -- Executing [client@mdc_transfer:5] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,from callee") in new stack
 from callee
    -- Executing [client@mdc_transfer:6] UserEvent("IAX2/mdc_trunk_conf-2-1952", "Transition,Type: forward,Arg1: 781,Channel: IAX2/mdc_trunk_conf-2-1952") in new stack
    -- Executing [client@mdc_transfer:7] Goto("IAX2/mdc_trunk_conf-2-1952", "main,781,1") in new stack
    -- Goto (main,781,1)
    -- Executing [781@main:1] Gosub("IAX2/mdc_trunk_conf-2-1952", "sub_defcall,s,1(781)") in new stack
    -- Executing [s@sub_defcall:1] Set("IAX2/mdc_trunk_conf-2-1952", "__MDC_ALIAS_HOP=2") in new stack
    -- Executing [s@sub_defcall:2] Set("IAX2/mdc_trunk_conf-2-1952", "__MDC_DIALCALLEENUM=781") in new stack
    -- Executing [s@sub_defcall:3] Set("IAX2/mdc_trunk_conf-2-1952", "__MDC_DIALCALLERNUM=...363...") in new stack
    -- Executing [s@sub_defcall:4] GotoIf("IAX2/mdc_trunk_conf-2-1952", "1?nozap") in new stack
    -- Goto (sub_defcall,s,8)
    -- Executing [s@sub_defcall:8] Set("IAX2/mdc_trunk_conf-2-1952", "__MDC_DIALCALLERNAME=CPS Philipp Handy") in new stack
    -- Executing [s@sub_defcall:9] Set("IAX2/mdc_trunk_conf-2-1952", "__MDC_DIALCHANNELNAME=mdc_trunk_conf-2") in new stack
    -- Executing [s@sub_defcall:10] Return("IAX2/mdc_trunk_conf-2-1952", "") in new stack
    -- Executing [781@main:2] Goto("IAX2/mdc_trunk_conf-2-1952", "mdc_distribute,781,1") in new stack
    -- Goto (mdc_distribute,781,1)
    -- Executing [781@mdc_distribute:1] Gosub("IAX2/mdc_trunk_conf-2-1952", "sub_user,s,1(callee,5,781,Robert,781,781)") in new stack
    -- Executing [s@sub_user:1] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,sub_user mode callee") in new stack
 sub_user mode callee
    -- Executing [s@sub_user:2] Goto("IAX2/mdc_trunk_conf-2-1952", "s-callee,1") in new stack
    -- Goto (sub_user,s-callee,1)
    -- Executing [s-callee@sub_user:1] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,sub_user user id: 5 - user: 781 - realname: Robert - own mailbox: 781 - watched mailbox: 781") in new stack
 sub_user user id: 5 - user: 781 - realname: Robert - own mailbox: 781 - watched mailbox: 781
    -- Executing [s-callee@sub_user:2] Set("IAX2/mdc_trunk_conf-2-1952", "_MDC_CALLEE_USER_ID=5") in new stack
    -- Executing [s-callee@sub_user:3] Set("IAX2/mdc_trunk_conf-2-1952", "_MDC_CALLEE_ACC_NAME=781") in new stack
    -- Executing [s-callee@sub_user:4] Set("IAX2/mdc_trunk_conf-2-1952", "_MDC_CALLEE_ACC_REALNAME=Robert") in new stack
    -- Executing [s-callee@sub_user:5] Set("IAX2/mdc_trunk_conf-2-1952", "_MDC_CALLEE_VM_OWN=781") in new stack
    -- Executing [s-callee@sub_user:6] Set("IAX2/mdc_trunk_conf-2-1952", "_MDC_CALLEE_VM_WATCHED=781") in new stack
    -- Executing [s-callee@sub_user:7] Return("IAX2/mdc_trunk_conf-2-1952", "") in new stack
    -- Executing [781@mdc_distribute:2] Goto("IAX2/mdc_trunk_conf-2-1952", "mdc_ident-5,781,1") in new stack
    -- Goto (mdc_ident-5,781,1)
    -- Executing [781@mdc_ident-5:1] NoOp("IAX2/mdc_trunk_conf-2-1952", "alias-check:: call forwarding from 781 - 0") in new stack
    -- Executing [781@mdc_ident-5:2] GotoIf("IAX2/mdc_trunk_conf-2-1952", "0?781-uml,1:781-dial,1") in new stack
    -- Goto (mdc_ident-5,781-dial,1)
    -- Executing [781-dial@mdc_ident-5:1] Set("IAX2/mdc_trunk_conf-2-1952", "__MDC_EXTEN=781") in new stack
    -- Executing [781-dial@mdc_ident-5:2] Gosub("IAX2/mdc_trunk_conf-2-1952", "sub_prefix-781,ext,1") in new stack
    -- Executing [ext@sub_prefix-781:1] Gosub("IAX2/mdc_trunk_conf-2-1952", "mdc_template-9,s,1") in new stack
    -- Executing [s@mdc_template-9:1] Gosub("IAX2/mdc_trunk_conf-2-1952", "cps_check_timecheck_GZ,s,1") in new stack
    -- Executing [s@cps_check_timecheck_GZ:1] GotoIf("IAX2/mdc_trunk_conf-2-1952", "1?next_25") in new stack
    -- Goto (cps_check_timecheck_GZ,s,4)
    -- Executing [s@cps_check_timecheck_GZ:4] Return("IAX2/mdc_trunk_conf-2-1952", "") in new stack
    -- Executing [s@mdc_template-9:2] Return("IAX2/mdc_trunk_conf-2-1952", "") in new stack
    -- Executing [ext@sub_prefix-781:2] Return("IAX2/mdc_trunk_conf-2-1952", "") in new stack
    -- Executing [781-dial@mdc_ident-5:3] GotoIf("IAX2/mdc_trunk_conf-2-1952", "0?781-unavail,1") in new stack
    -- Executing [781-dial@mdc_ident-5:4] GotoIf("IAX2/mdc_trunk_conf-2-1952", "0?781-busy,1") in new stack
    -- Executing [781-dial@mdc_ident-5:5] Gosub("IAX2/mdc_trunk_conf-2-1952", "sub_main-781,ext,1") in new stack
    -- Executing [ext@sub_main-781:1] Set("IAX2/mdc_trunk_conf-2-1952", "__PICKUPMARK=781") in new stack
    -- Executing [ext@sub_main-781:2] ExecIf("IAX2/mdc_trunk_conf-2-1952", "0?Set(__SPYGROUP=781:):Set(__SPYGROUP=781:...363...)") in new stack
    -- Executing [ext@sub_main-781:3] Dial("IAX2/mdc_trunk_conf-2-1952", "Local/781@mdc_diallocation") in new stack
    -- Called Local/781@mdc_diallocation
    -- Executing [781@mdc_diallocation:1] Verbose("Local/781@mdc_diallocation-000002b2;2", "1,dial to 781 for user 5") in new stack
 dial to 781 for user 5
    -- Executing [781@mdc_diallocation:2] Set("Local/781@mdc_diallocation-000002b2;2", "__MDC_DIALLOCATION_CHANNEL=Local/781@mdc_diallocation-000002b2;2") in new stack
    -- Executing [781@mdc_diallocation:3] Set("Local/781@mdc_diallocation-000002b2;2", "SHARED(MDC_CALLEE_PEERS)=") in new stack
    -- Executing [781@mdc_diallocation:4] Set("Local/781@mdc_diallocation-000002b2;2", "MDC_EXTEN=781") in new stack
    -- Executing [781@mdc_diallocation:5] Wait("Local/781@mdc_diallocation-000002b2;2", "0.25") in new stack
    -- Executing [781@mdc_diallocation:6] ExecIf("Local/781@mdc_diallocation-000002b2;2", "0?Set(TMP_TARGET=team):Set(TMP_TARGET=ext)") in new stack
    -- Executing [781@mdc_diallocation:7] Gosub("Local/781@mdc_diallocation-000002b2;2", "sub_split-user,s,1(5)") in new stack
    -- Executing [s@sub_split-user:1] Verbose("Local/781@mdc_diallocation-000002b2;2", "1,get locations for for: 5") in new stack
 get locations for for: 5
    -- Executing [s@sub_split-user:2] GotoIf("Local/781@mdc_diallocation-000002b2;2", "0?s-zero,1") in new stack
    -- Executing [s@sub_split-user:3] Set("Local/781@mdc_diallocation-000002b2;2", "TMP_LOCATIONS=5;0") in new stack
    -- Executing [s@sub_split-user:4] Set("Local/781@mdc_diallocation-000002b2;2", "TMP_STATIC_ID=5") in new stack
    -- Executing [s@sub_split-user:5] Verbose("Local/781@mdc_diallocation-000002b2;2", "1,static id: 5") in new stack
 static id: 5
    -- Executing [s@sub_split-user:6] Set("Local/781@mdc_diallocation-000002b2;2", "TMP_DYN_ID=0") in new stack
    -- Executing [s@sub_split-user:7] Verbose("Local/781@mdc_diallocation-000002b2;2", "1,dynamic id: 0") in new stack
 dynamic id: 0
    -- Executing [s@sub_split-user:8] Return("Local/781@mdc_diallocation-000002b2;2", "") in new stack
    -- Executing [781@mdc_diallocation:8] GotoIf("Local/781@mdc_diallocation-000002b2;2", "0?invalid,1") in new stack
    -- Executing [781@mdc_diallocation:9] GotoIf("Local/781@mdc_diallocation-000002b2;2", "0?dynamic,1") in new stack
    -- Executing [781@mdc_diallocation:10] GotoIf("Local/781@mdc_diallocation-000002b2;2", "1?static,1") in new stack
    -- Goto (mdc_diallocation,static,1)
    -- Executing [static@mdc_diallocation:1] Dial("Local/781@mdc_diallocation-000002b2;2", "Local/ext@mdc_locallocation-5") in new stack
    -- Called Local/ext@mdc_locallocation-5
    -- Executing [ext@mdc_locallocation-5:1] Set("Local/ext@mdc_locallocation-5-000002b3;2", "PUSH(SHARED(MDC_CALLEE_PEERS,Local/781@mdc_diallocation-000002b2;2))=Local/ext-3@mdc_localdevice-5") in new stack
    -- Executing [ext@mdc_locallocation-5:2] Dial("Local/ext@mdc_locallocation-5-000002b3;2", "Local/ext-3@mdc_localdevice-5") in new stack
    -- Called Local/ext-3@mdc_localdevice-5
    -- Executing [ext-3@mdc_localdevice-5:1] Verbose("Local/ext-3@mdc_localdevice-5-000002b4;2", "1,Dialing with delay of 0 seconds for 999 seconds") in new stack
 Dialing with delay of 0 seconds for 999 seconds
    -- Executing [ext-3@mdc_localdevice-5:2] Dial("Local/ext-3@mdc_localdevice-5-000002b4;2", "SIP/xq8vdzx8Fbx8Ui9,999") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called SIP/xq8vdzx8Fbx8Ui9
    -- SIP/xq8vdzx8Fbx8Ui9-000000e8 is ringing
    -- Local/ext-3@mdc_localdevice-5-000002b4;1 is ringing
    -- Local/ext@mdc_locallocation-5-000002b3;1 is ringing
    -- Local/781@mdc_diallocation-000002b2;1 is ringing
    -- Manager 'phpasm' from 127.0.0.1, hanging up channel: SIP/xq8vdzx8Fbx8Ui9-000000e8
    -- No one is available to answer at this time (1:0/0/0)
    -- Executing [ext-3@mdc_localdevice-5:3] Verbose("Local/ext-3@mdc_localdevice-5-000002b4;2", "1,mdc_localdevice-Dialstatus: NOANSWER - cause: 16") in new stack
 mdc_localdevice-Dialstatus: NOANSWER - cause: 16
    -- Executing [ext-3@mdc_localdevice-5:4] Gosub("Local/ext-3@mdc_localdevice-5-000002b4;2", "sub_hangup,s,1(NOANSWER)") in new stack
    -- Executing [s@sub_hangup:1] Verbose("Local/ext-3@mdc_localdevice-5-000002b4;2", "1,sub_hangup dialstatus: NOANSWER") in new stack
 sub_hangup dialstatus: NOANSWER
    -- Executing [s@sub_hangup:2] GotoIf("Local/ext-3@mdc_localdevice-5-000002b4;2", "1?noanswer,1") in new stack
    -- Goto (sub_hangup,noanswer,1)
    -- Executing [noanswer@sub_hangup:1] Hangup("Local/ext-3@mdc_localdevice-5-000002b4;2", "19") in new stack
  == Spawn extension (sub_hangup, noanswer, 1) exited non-zero on 'Local/ext-3@mdc_localdevice-5-000002b4;2'
    -- No one is available to answer at this time (1:0/0/0)
    -- Executing [ext@mdc_locallocation-5:3] Verbose("Local/ext@mdc_locallocation-5-000002b3;2", "1,mdc_locallocation-Dialstatus: NOANSWER - cause: 19") in new stack
 mdc_locallocation-Dialstatus: NOANSWER - cause: 19
    -- Executing [ext@mdc_locallocation-5:4] ExecIf("Local/ext@mdc_locallocation-5-000002b3;2", "1?HangUp(19)") in new stack
  == Spawn extension (mdc_locallocation-5, ext, 4) exited non-zero on 'Local/ext@mdc_locallocation-5-000002b3;2'
    -- No one is available to answer at this time (1:0/0/0)
    -- Executing [static@mdc_diallocation:2] Verbose("Local/781@mdc_diallocation-000002b2;2", "1,mdc_diallocationDialstatus: NOANSWER - cause: 19") in new stack
 mdc_diallocationDialstatus: NOANSWER - cause: 19
    -- Executing [static@mdc_diallocation:3] ExecIf("Local/781@mdc_diallocation-000002b2;2", "1?HangUp(19)") in new stack
  == Spawn extension (mdc_diallocation, static, 3) exited non-zero on 'Local/781@mdc_diallocation-000002b2;2'
    -- No one is available to answer at this time (1:0/0/0)
    -- Executing [ext@sub_main-781:4] Verbose("IAX2/mdc_trunk_conf-2-1952", "1,sub_main-Dialstatus: NOANSWER") in new stack
 sub_main-Dialstatus: NOANSWER
    -- Executing [ext@sub_main-781:5] Return("IAX2/mdc_trunk_conf-2-1952", "") in new stack
    -- Executing [781-dial@mdc_ident-5:6] Gosub("IAX2/mdc_trunk_conf-2-1952", "sub_suffix-781,ext,1") in new stack
    -- Executing [ext@sub_suffix-781:1] Gosub("IAX2/mdc_trunk_conf-2-1952", "mdc_template-4,s,1") in new stack
    -- Executing [s@mdc_template-4:1] Gosub("IAX2/mdc_trunk_conf-2-1952", "def_transfer,s,1") in new stack
    -- Executing [s@def_transfer:1] GosubIf("IAX2/mdc_trunk_conf-2-1952", "0?sub_transfer-return,s,1(782,...363...)") in new stack
    -- Executing [s@def_transfer:2] GosubIf("IAX2/mdc_trunk_conf-2-1952", "0?sub_transfer-return,s,1(782,...363...)") in new stack
    -- Executing [s@def_transfer:3] Return("IAX2/mdc_trunk_conf-2-1952", "") in new stack
    -- Executing [s@mdc_template-4:2] Playback("IAX2/mdc_trunk_conf-2-1952", "cps_nebenstelle_nicht_erreichbar_vermittlung") in new stack
    -- <IAX2/mdc_trunk_conf-2-1952> Playing 'cps_nebenstelle_nicht_erreichbar_vermittlung.alaw' (language 'de')
    -- Got SIP response 603 "Decline" back from 10.0.2.192:55490
    -- Registered SIP 'xq8vdzx8Fbx8Ui9' at 10.0.2.192:55495
  == Spawn extension (mdc_template-4, s, 2) exited non-zero on 'IAX2/mdc_trunk_conf-2-1952'
    -- Hungup 'IAX2/mdc_trunk_conf-2-1952'
...

Externer Anruf an 782. 782 habt ab. 782 verbindet zu 781. 781 legt auf ohne abzunehmen (lehnt anruf ab).

 Executing [s@def_transfer:1] GosubIf("IAX2/mdc_trunk_conf-2-1952", "0?sub_transfer-return,s,1(782,...363...)") in new stack

ist im Skript so definiert:

exten => s,1,GoSubIf($ "${BLINDTRANSFER}" != "" ]?sub_transfer-return,s,1(${MDC_DIALCALLEENUMMAP},${MDC_DIALCALLERNUM}))

So wie es aussieht wird die Variabel “{BLINDTRANSFER}” nicht gesetzt.

Bei “Weiterleiten” also wenn 782 den ruf an 781 weitergibt ohne abzuheben verhält es sich gleich.

Danke Philipp

Hallo Philipp,

kannst du das Skript mal um einen Dump anpassen

exten => s,1,NoOp(BLINDTRANSFER: ${BLINDTRANSFER})
exten => s,n,NoOp(RDNIS: ${CALLERID(rdnis)})

in der nächsten Zeile noch die Priorität von 1 auf n setzen.

Jetzt solltest du in der CLI überprüfen können, ob BLINDTRANSFER oder RDNIS gesetzt sind.

Gruß
Markus

Hallo Markus,

die sind beide leer:

sub_main-Dialstatus: BUSY
    -- Executing [ext@sub_main-791:5] Return("IAX2/mdc_trunk_conf-2-11372", "") in new stack
    -- Executing [791-dial@mdc_ident-1:6] Gosub("IAX2/mdc_trunk_conf-2-11372", "sub_suffix-791,ext,1") in new stack
    -- Executing [ext@sub_suffix-791:1] Gosub("IAX2/mdc_trunk_conf-2-11372", "mdc_template-4,s,1") in new stack
    -- Executing [s@mdc_template-4:1] Gosub("IAX2/mdc_trunk_conf-2-11372", "def_transfer,s,1") in new stack
    -- Executing [s@def_transfer:1] NoOp("IAX2/mdc_trunk_conf-2-11372", "BLINDTRANSFER: ") in new stack
    -- Executing [s@def_transfer:2] NoOp("IAX2/mdc_trunk_conf-2-11372", "RDNIS: ") in new stack
    -- Executing [s@def_transfer:3] GosubIf("IAX2/mdc_trunk_conf-2-11372", "0?sub_transfer-return,s,1(782,0512363701)") in new stack
    -- Executing [s@def_transfer:4] GosubIf("IAX2/mdc_trunk_conf-2-11372", "0?sub_transfer-return,s,1(782,0512363701)") in new stack
    -- Executing [s@def_transfer:5] Return("IAX2/mdc_trunk_conf-2-11372", "") in new stack
    -- Executing [s@mdc_template-4:2] Playback("IAX2/mdc_trunk_conf-2-11372", "cps_nebenstelle_nicht_erreichbar_vermittlung") in new stack

Danke Philipp

Morgen Philipp,

scheint so als wäre es kein klassischer Transfer in dem Sinne. Dann beschreib bitte mal genau, wie in diesem Fall transferiert wird Client, Endgerät, welche Geräte verwendet werden. Alleine beim Snom gibt es mehrere Fälle einen Transfer einzuleiten, abhängig wann welche Tasten wie oft gedrückt werden.

Gruß
Markus

Hallo Markus,

ich verwende für alles den Mobydick Softclient.
Den Transfer habe ich wie folgt probiert:

  1. Im Roster das Gespräch auf den anderen Teilnehmer ziehen und loslassen.
  2. wie in der Mobdick-Client Anleitung beschrieben im Client auf das Zahnrad klicken -> “verbinden mit” auswählen und dann nach dem Teilnehmer suchen und auswählen.

Danke Philipp

Hallo,

ich hab das Ganze auch mit dem Demodump ausprobiert - da ist das selbe Verhalten.

Danke
Philipp

Re,

sorry, dass ein wenig gedauert hat.
Bitte ändere das “default013” transfer-return script auf folgenden Inhalt

; blindtransfer
exten => s,1,GoSubIf($ “${BLINDTRANSFER}” != “” ]?sub_transfer-return,s,1(${MDC_DIALCALLEENUMMAP},${MDC_DIALCALLERNUM}))
; direct transfer (redirect)
exten => s,n,GoSubIf($ “${CALLERID(rdnis)}” != “” ]?sub_transfer-return,s,1(${MDC_DIALCALLEENUMMAP},${MDC_DIALCALLERNUM}))
; transfer via client
exten => s,n,GoSubIf($ “${MDC_TRANSFER_TRANSFERER_EXTENSION}” = “${MDC_DIALCALLEENUMMAP}” ]?sub_transfer-return,s,1(${MDC_DIALCALLEENUMMAP},${MDC_DIALCALLERNUM}))
exten => s,n,Return()

Dann sollte das Skript jetzt auch greifen, wenn der Transfer vom Client aus passiert.

Version 7.11.02 getestet!

Gruß
Markus

funktioniert.

Danke