Attended xfer not working

3 phones… my cell, ext1, and ext2.

I call from my cell to ext1. I pickup and the call is working. From ext1 I press *2+2. ext2 rings. ext2 picks up and I tell them I am xferring a call. I hang up ext1 and the call does not go through to ext2. My cell is left in limbo.

Am doing this wrong?

*2 works for me. I have 4 digit extensions.

I tested this on my lab system using 3 different brands of phones. I did notice that if you dial *2xxxx and hang up quickly the call is not dialed. If I wait a few seconds for the call to start it works. It I dial *2xxx# it worked.

The length of time you have to wait when you dial digits and when the phone considers the dialing complete is set in the digit map of the phone.

It is possible that the single digit extensions if the cog in the wheel. Don’t see single digit extensions often.

It would be much easier to help you if you provided the following.

FreePBX version
Distro or installed by hand
Brand of phone
Model of phone
Might be handy to know what type of trunks
Has the system been working and this issue just started happening
Console output of a failed call

I use 3 digit extensions. The single digits were examples to illustrate the process I am using with the thinking that maybe I am doing it wrong.

The phones are Cisco SPA504g models.

Asterisk 1.6.2.10

FreePBX 2.9.0.12

Here is a console dump when calling 511 from my cell, and then doing attended (*2) xfer to 512:

customer*CLI> == Using SIP RTP CoS mark 5 -- Executing [*outsideDID*@from-trunk:1] Set("SIP/t*btn*-000000e4", "__FROM_DID=*outsideDID*") in new stack -- Executing [*outsideDID*@from-trunk:2] ExecIf("SIP/t*btn*-000000e4", "0 ?Set(CALLERID(name)=*mycell*)") in new stack -- Executing [*outsideDID*@from-trunk:3] Set("SIP/t*btn*-000000e4", "__CALLINGPRES_SV=allowed_not_screened") in new stack -- Executing [*outsideDID*@from-trunk:4] Set("SIP/t*btn*-000000e4", "CALLERPRES()=allowed_not_screened") in new stack -- Executing [*outsideDID*@from-trunk:5] Goto("SIP/t*btn*-000000e4", "from-did-direct,511,1") in new stack -- Goto (from-did-direct,511,1) -- Executing [[email protected]:1] ExecIf("SIP/t*btn*-000000e4", "0?Set(__RINGTIMER=0)") in new stack -- Executing [[email protected]:2] Macro("SIP/t*btn*-000000e4", "exten-vm,novm,511,0,0,0") in new stack -- Executing [[email protected]:1] Macro("SIP/t*btn*-000000e4", "user-callerid,") in new stack -- Executing [[email protected]:1] Set("SIP/t*btn*-000000e4", "AMPUSER=*mycell*") in new stack -- Executing [[email protected]:2] GotoIf("SIP/t*btn*-000000e4", "0?report") in new stack -- Executing [[email protected]:3] ExecIf("SIP/t*btn*-000000e4", "1?Set(REALCALLERIDNUM=*mycell*)") in new stack -- Executing [[email protected]:4] Set("SIP/t*btn*-000000e4", "AMPUSER=") in new stack -- Executing [[email protected]:5] Set("SIP/t*btn*-000000e4", "AMPUSERCIDNAME=") in new stack -- Executing [[email protected]:6] GotoIf("SIP/t*btn*-000000e4", "1?report") in new stack -- Goto (macro-user-callerid,s,11) -- Executing [[email protected]:11] GotoIf("SIP/t*btn*-000000e4", "0?continue") in new stack -- Executing [[email protected]:12] Set("SIP/t*btn*-000000e4", "__TTL=64") in new stack -- Executing [[email protected]:13] GotoIf("SIP/t*btn*-000000e4", "1?continue") in new stack -- Goto (macro-user-callerid,s,24) -- Executing [[email protected]:24] Set("SIP/t*btn*-000000e4", "CALLERID(number)=*mycell*") in new stack -- Executing [[email protected]:25] Set("SIP/t*btn*-000000e4", "CALLERID(name)=Cell Phone CA") in new stack -- Executing [[email protected]:2] Set("SIP/t*btn*-000000e4", "RingGroupMethod=none") in new stack -- Executing [[email protected]:3] Macro("SIP/t*btn*-000000e4", "get-vm,511") in new stack -- Executing [[email protected]:1] Set("SIP/t*btn*-000000e4", "SHAREDVM=") in new stack -- Executing [[email protected]:2] Set("SIP/t*btn*-000000e4", "VMBOX=511") in new stack -- Executing [[email protected]:3] Set("SIP/t*btn*-000000e4", "SHAREDBOX=") in new stack -- Executing [[email protected]:4] GotoIf("SIP/t*btn*-000000e4", "1?noshare:yesshare") in new stack -- Goto (macro-get-vm,s,8) -- Executing [[email protected]:8] Macro("SIP/t*btn*-000000e4", "get-vmcontext,511") in new stack -- Executing [[email protected]:1] Set("SIP/t*btn*-000000e4", "VMCONTEXT=novm") in new stack -- Executing [[email protected]:2] GotoIf("SIP/t*btn*-000000e4", "0?200:300") in new stack -- Goto (macro-get-vmcontext,s,300) -- Executing [[email protected]:300] NoOp("SIP/t*btn*-000000e4", "") in new stack -- Executing [[email protected]:9] NoOp("SIP/t*btn*-000000e4", "No shared VM box-use regular VM box") in new stack -- Executing [[email protected]:4] Set("SIP/t*btn*-000000e4", "__EXTTOCALL=511") in new stack -- Executing [[email protected]:5] Set("SIP/t*btn*-000000e4", "CFUEXT=") in new stack -- Executing [[email protected]:6] Set("SIP/t*btn*-000000e4", "CFBEXT=") in new stack -- Executing [[email protected]:7] Set("SIP/t*btn*-000000e4", "RT=20") in new stack -- Executing [[email protected]:8] Macro("SIP/t*btn*-000000e4", "record-enable,511,IN") in new stack -- Executing [[email protected]:1] GotoIf("SIP/t*btn*-000000e4", "1?check") in new stack -- Goto (macro-record-enable,s,4) -- Executing [[email protected]:4] ExecIf("SIP/t*btn*-000000e4", "0?MacroExit()") in new stack -- Executing [[email protected]:5] GotoIf("SIP/t*btn*-000000e4", "0?Group:OUT") in new stack -- Goto (macro-record-enable,s,14) -- Executing [[email protected]:14] GotoIf("SIP/t*btn*-000000e4", "1?IN") in new stack -- Goto (macro-record-enable,s,18) -- Executing [[email protected]:18] ExecIf("SIP/t*btn*-000000e4", "1?MacroExit()") in new stack -- Executing [[email protected]:9] Macro("SIP/t*btn*-000000e4", "dial,20,tr,511") in new stack -- Executing [[email protected]:1] GotoIf("SIP/t*btn*-000000e4", "1?dial") in new stack -- Goto (macro-dial,s,3) -- Executing [[email protected]:3] AGI("SIP/t*btn*-000000e4", "dialparties.agi") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi dialparties.agi: Starting New Dialparties.agi dialparties.agi: Caller ID name is 'Cell Phone CA' number is '*mycell*' dialparties.agi: Methodology of ring is 'none' -- dialparties.agi: Added extension 511 to extension map -- dialparties.agi: Extension 511 cf is disabled -- dialparties.agi: Extension 511 do not disturb is disabled dialparties.agi: EXTENSION_STATE: 0 (NOT_INUSE) -- dialparties.agi: dbset CALLTRACE/511 to *mycell* -- dialparties.agi: Filtered ARG3: 511 -- AGI Script dialparties.agi completed, returning 0 -- Executing [[email protected]:7] Dial("SIP/t*btn*-000000e4", "SIP/511,20,tr") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Called 511 -- SIP/511-000000e5 is ringing -- SIP/511-000000e5 answered SIP/t*btn*-000000e4 -- adaptive jitterbuffer created on channel SIP/t*btn*-000000e4 -- adaptive jitterbuffer created on channel SIP/511-000000e5 -- Executing [*outsideDID*@from-trunk:9] Goto("SIP/t*btn*-000000e3", "ext-group,1603,1") in new stack -- Goto (ext-group,1603,1) -- Executing [[email protected]:1] Macro("SIP/t*btn*-000000e3", "user-callerid,") in new stack -- Executing [[email protected]:1] Set("SIP/t*btn*-000000e3", "AMPUSER=*outsideDID*") in new stack -- Executing [[email protected]:2] GotoIf("SIP/t*btn*-000000e3", "0?report") in new stack -- Executing [[email protected]:3] ExecIf("SIP/t*btn*-000000e3", "1?Set(REALCALLERIDNUM=*outsideDID*)") in new stack -- Executing [[email protected]:4] Set("SIP/t*btn*-000000e3", "AMPUSER=") in new stack -- Executing [[email protected]:5] Set("SIP/t*btn*-000000e3", "AMPUSERCIDNAME=") in new stack -- Executing [[email protected]:6] GotoIf("SIP/t*btn*-000000e3", "1?report") in new stack -- Goto (macro-user-callerid,s,11) -- Executing [[email protected]:11] GotoIf("SIP/t*btn*-000000e3", "0?continue") in new stack -- Executing [[email protected]:12] Set("SIP/t*btn*-000000e3", "__TTL=64") in new stack -- Executing [[email protected]:13] GotoIf("SIP/t*btn*-000000e3", "1?continue") in new stack -- Goto (macro-user-callerid,s,24) -- Executing [[email protected]:24] Set("SIP/t*btn*-000000e3", "CALLERID(number)=*outsideDID*") in new stack -- Executing [[email protected]:25] Set("SIP/t*btn*-000000e3", "CALLERID(name)=FR-FRESNO CA") in new stack -- Executing [[email protected]:2] Macro("SIP/t*btn*-000000e3", "blkvm-setifempty,") in new stack -- Executing [[email protected]:1] GotoIf("SIP/t*btn*-000000e3", "1?init") in new stack -- Goto (macro-blkvm-setifempty,s,4) -- Executing [[email protected]:4] Set("SIP/t*btn*-000000e3", "__BLKVM_CHANNEL=SIP/t*btn*-000000e3") in new stack -- Executing [[email protected]:5] Set("SIP/t*btn*-000000e3", "SHARED(BLKVM,SIP/t*btn*-000000e3)=TRUE") in new stack -- Executing [[email protected]:6] Set("SIP/t*btn*-000000e3", "GOSUB_RETVAL=TRUE") in new stack -- Executing [[email protected]:7] MacroExit("SIP/t*btn*-000000e3", "") in new stack -- Executing [[email protected]:3] GotoIf("SIP/t*btn*-000000e3", "1?skipov") in new stack -- Goto (ext-group,1603,6) -- Executing [[email protected]:6] Set("SIP/t*btn*-000000e3", "RRNODEST=") in new stack -- Executing [[email protected]:7] Set("SIP/t*btn*-000000e3", "__NODEST=1603") in new stack -- Executing [[email protected]:8] GosubIf("SIP/t*btn*-000000e3", "0?sub-rgsetcid,s,1") in new stack -- Executing [[email protected]:9] Set("SIP/t*btn*-000000e3", "__PICKUPMARK=1603") in new stack -- Executing [[email protected]:10] Set("SIP/t*btn*-000000e3", "RecordMethod=Group") in new stack -- Executing [[email protected]:11] Macro("SIP/t*btn*-000000e3", "record-enable,401,Group") in new stack -- Executing [[email protected]:1] GotoIf("SIP/t*btn*-000000e3", "1?check") in new stack -- Goto (macro-record-enable,s,4) -- Executing [[email protected]:4] ExecIf("SIP/t*btn*-000000e3", "0?MacroExit()") in new stack -- Executing [[email protected]:5] GotoIf("SIP/t*btn*-000000e3", "1?Group:OUT") in new stack -- Goto (macro-record-enable,s,6) -- Executing [[email protected]:6] Set("SIP/t*btn*-000000e3", "LOOPCNT=1") in new stack -- Executing [[email protected]:7] Set("SIP/t*btn*-000000e3", "ITER=1") in new stack -- Executing [[email protected]:8] GotoIf("SIP/t*btn*-000000e3", "1?continue") in new stack -- Goto (macro-record-enable,s,12) -- Executing [[email protected]:12] Set("SIP/t*btn*-000000e3", "ITER=2") in new stack -- Executing [[email protected]:13] GotoIf("SIP/t*btn*-000000e3", "0?begin") in new stack -- Executing [[email protected]:14] GotoIf("SIP/t*btn*-000000e3", "0?IN") in new stack -- Executing [[email protected]:15] ExecIf("SIP/t*btn*-000000e3", "1?MacroExit()") in new stack -- Executing [[email protected]:12] Set("SIP/t*btn*-000000e3", "RingGroupMethod=ringall") in new stack -- Executing [[email protected]:13] Macro("SIP/t*btn*-000000e3", "dial,20,tr,401") in new stack -- Executing [[email protected]:1] GotoIf("SIP/t*btn*-000000e3", "1?dial") in new stack -- Goto (macro-dial,s,3) -- Executing [[email protected]:3] AGI("SIP/t*btn*-000000e3", "dialparties.agi") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi dialparties.agi: Starting New Dialparties.agi dialparties.agi: Caller ID name is 'FR-FRESNO CA' number is '*outsideDID*' dialparties.agi: Methodology of ring is 'ringall' -- dialparties.agi: Added extension 401 to extension map -- dialparties.agi: Extension 401 cf is disabled -- dialparties.agi: Extension 401 do not disturb is disabled dialparties.agi: EXTENSION_STATE: 0 (NOT_INUSE) dialparties.agi: Extension 401 has ExtensionState: 0 -- dialparties.agi: Checking CW and CFB status for extension 401 -- dialparties.agi: dbset CALLTRACE/401 to *outsideDID* -- dialparties.agi: Filtered ARG3: 401 -- AGI Script dialparties.agi completed, returning 0 -- Executing [[email protected]:7] Dial("SIP/t*btn*-000000e3", "SIP/401,20,trM(auto-blkvm)") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Called 401 -- SIP/401-000000e6 is ringing -- Started music on hold, class 'default', on SIP/t*btn*-000000e4 -- Playing 'pbx-transfer.g729' (language 'en') -- SIP/401-000000e6 answered SIP/t*btn*-000000e3 -- Executing [[email protected]:1] Set("SIP/401-000000e6", "__MACRO_RESULT=") in new stack -- Executing [[email protected]:2] Macro("SIP/401-000000e6", "blkvm-clr,") in new stack -- Executing [[email protected]:1] Set("SIP/401-000000e6", "SHARED(BLKVM,SIP/t*btn*-000000e3)=") in new stack -- Executing [[email protected]:2] Set("SIP/401-000000e6", "GOSUB_RETVAL=") in new stack -- Executing [[email protected]:3] MacroExit("SIP/401-000000e6", "") in new stack -- adaptive jitterbuffer created on channel SIP/401-000000e6 -- adaptive jitterbuffer created on channel SIP/t*btn*-000000e3 -- Executing [[email protected]:1] ExecIf("Local/[email protected];2", "0?Set(__RINGTIMER=0)") in new stack -- Executing [[email protected]:2] Macro("Local/[email protected];2", "exten-vm,novm,512,0,0,0") in new stack -- Executing [[email protected]:1] Macro("Local/[email protected];2", "user-callerid,") in new stack -- Executing [[email protected]:1] Set("Local/[email protected];2", "AMPUSER=511") in new stack -- Executing [[email protected]:2] GotoIf("Local/[email protected];2", "1?report") in new stack -- Goto (macro-user-callerid,s,11) -- Executing [[email protected]:11] GotoIf("Local/[email protected];2", "0?continue") in new stack -- Executing [[email protected]:12] Set("Local/[email protected];2", "__TTL=63") in new stack -- Executing [[email protected]:13] GotoIf("Local/[email protected];2", "1?continue") in new stack -- Goto (macro-user-callerid,s,24) -- Executing [[email protected]:24] Set("Local/[email protected];2", "CALLERID(number)=511") in new stack -- Executing [[email protected]:25] Set("Local/[email protected];2", "CALLERID(name)=") in new stack -- Executing [[email protected]:2] Set("Local/[email protected];2", "RingGroupMethod=none") in new stack -- Executing [[email protected]:3] Macro("Local/[email protected];2", "get-vm,512") in new stack -- Executing [[email protected]:1] Set("Local/[email protected];2", "SHAREDVM=") in new stack -- Executing [[email protected]:2] Set("Local/[email protected];2", "VMBOX=512") in new stack -- Executing [[email protected]:3] Set("Local/[email protected];2", "SHAREDBOX=") in new stack -- Executing [[email protected]:4] GotoIf("Local/[email protected];2", "1?noshare:yesshare") in new stack -- Goto (macro-get-vm,s,8) -- Executing [[email protected]:8] Macro("Local/[email protected];2", "get-vmcontext,512") in new stack -- Executing [[email protected]:1] Set("Local/[email protected];2", "VMCONTEXT=novm") in new stack -- Executing [[email protected]:2] GotoIf("Local/[email protected];2", "0?200:300") in new stack -- Goto (macro-get-vmcontext,s,300) -- Executing [[email protected]:300] NoOp("Local/[email protected];2", "") in new stack -- Executing [[email protected]:9] NoOp("Local/[email protected];2", "No shared VM box-use regular VM box") in new stack -- Executing [[email protected]:4] Set("Local/[email protected];2", "__EXTTOCALL=512") in new stack -- Executing [[email protected]:5] Set("Local/[email protected];2", "CFUEXT=") in new stack -- Executing [[email protected]:6] Set("Local/[email protected];2", "CFBEXT=") in new stack -- Executing [[email protected]:7] Set("Local/[email protected];2", "RT=20") in new stack -- Executing [[email protected]:8] Macro("Local/[email protected];2", "record-enable,512,IN") in new stack -- Executing [[email protected]:1] GotoIf("Local/[email protected];2", "1?check") in new stack -- Goto (macro-record-enable,s,4) -- Executing [[email protected]:4] ExecIf("Local/[email protected];2", "0?MacroExit()") in new stack -- Executing [[email protected]:5] GotoIf("Local/[email protected];2", "0?Group:OUT") in new stack -- Goto (macro-record-enable,s,14) -- Executing [[email protected]:14] GotoIf("Local/[email protected];2", "1?IN") in new stack -- Goto (macro-record-enable,s,18) -- Executing [[email protected]:18] ExecIf("Local/[email protected];2", "1?MacroExit()") in new stack -- Executing [[email protected]:9] Macro("Local/[email protected];2", "dial,20,tr,512") in new stack -- Executing [[email protected]:1] GotoIf("Local/[email protected];2", "1?dial") in new stack -- Goto (macro-dial,s,3) -- Executing [[email protected]:3] AGI("Local/[email protected];2", "dialparties.agi") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi dialparties.agi: Starting New Dialparties.agi dialparties.agi: Caller ID name is 'unknown' number is '511' dialparties.agi: Methodology of ring is 'none' -- dialparties.agi: Added extension 512 to extension map -- dialparties.agi: Extension 512 cf is disabled -- dialparties.agi: Extension 512 do not disturb is disabled dialparties.agi: EXTENSION_STATE: 0 (NOT_INUSE) -- dialparties.agi: dbset CALLTRACE/512 to 511 -- dialparties.agi: Filtered ARG3: 512 -- AGI Script dialparties.agi completed, returning 0 -- Executing [[email protected]:7] Dial("Local/[email protected];2", "SIP/512,20,tr") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Called 512 -- Local/[email protected];1 is ringing -- SIP/512-000000e7 is ringing -- Local/[email protected];1 is ringing -- SIP/512-000000e7 answered Local/[email protected];2 -- Executing [[email protected]:1] Hangup("SIP/511-000000e5", "") in new stack -- Stopped music on hold on SIP/t*btn*-000000e4 -- Playing 'beep.g729' (language 'en') -- Executing [[email protected]:1] Macro("Transfered/SIP/t*btn*-000000e4", "hangupcall") in new stack -- Executing [[email protected]:1] GotoIf("Transfered/SIP/t*btn*-000000e4", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [[email protected]:3] Hangup("Transfered/SIP/t*btn*-000000e4", "") in new stack == Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'Transfered/SIP/t*btn*-000000e4' in macro 'hangupcall' -- adaptive jitterbuffer destroyed on channel SIP/511-000000e5 == Spawn extension (macro-dial, s, 7) exited non-zero on 'Transfered/SIP/t*btn*-000000e4' in macro 'dial' == Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'Transfered/SIP/t*btn*-000000e4' in macro 'exten-vm' == Spawn extension (from-did-direct, 511, 2) exited non-zero on 'Transfered/SIP/t*btn*-000000e4' -- adaptive jitterbuffer destroyed on channel Transfered/SIP/t*btn*-000000e4 -- Executing [[email protected]:1] Macro("Local/[email protected];2", "hangupcall") in new stack -- Executing [[email protected]:1] GotoIf("Local/[email protected];2", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [[email protected]:3] Hangup("Local/[email protected];2", "") in new stack == Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'Local/[email protected];2' in macro 'hangupcall' == Spawn extension (macro-dial, h, 1) exited non-zero on 'Local/[email protected];2' == Spawn extension (macro-dial, s, 7) exited non-zero on 'Local/[email protected];2' in macro 'dial' == Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'Local/[email protected];2' in macro 'exten-vm' == Spawn extension (from-internal-xfer, 512, 2) exited non-zero on 'Local/[email protected];2' -- Executing [[email protected]:1] Macro("Local/[email protected];2", "hangupcall") in new stack -- Executing [[email protected]:1] GotoIf("Local/[email protected];2", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [[email protected]:3] Hangup("Local/[email protected];2", "") in new stack == Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'Local/[email protected];2' in macro 'hangupcall' == Spawn extension (from-internal-xfer, h, 1) exited non-zero on 'Local/[email protected];2' -- Executing [[email protected]:1] Macro("SIP/t*btn*-000000e4", "hangupcall") in new stack -- Executing [[email protected]:1] GotoIf("SIP/t*btn*-000000e4", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [[email protected]:3] Hangup("SIP/t*btn*-000000e4", "") in new stack == Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'SIP/t*btn*-000000e4' in macro 'hangupcall' == Spawn extension (macro-dial, h, 1) exited non-zero on 'SIP/t*btn*-000000e4' customer*CLI> quit [[email protected]~]#

After the transfer I get a situation where 512 can hear but not talk, and my cell can talk but not hear.