Directed Pickup Not Working on Transferred Calls

I can’t get directed pickup to work on calls that are transferred.

I have three extensions in my small office – 100, 101, and 102. DID call rings on x100, can do a directed pickup from x101 or x102. However, if x100 transfers that call to x101, it’s not possible to do a directed pickup of x101 from any other extension – says “Call Failed” on the extension attempting the pickup. HOWEVER, after x100 transfers the call to x101, x102 can pick up the call by doing a directed pickup of x100 (the extension which originated the transfer).

It appears, at least on my system, that the only way to do a directed pickup on a transferred call is to direct the pickup toward the phone that originated the transfer. This doesn’t seem right, it’s impossible to know which phone originated a transfer.

I am using the **[ext] code to do the directed pickup. Works fine on internal extension-to-extension calls as well as DID calls, just not on any calls that are transferred. Can anyone lend a hand?

Hi,

Had this as well. Added context ‘from-internal-xfer’ to app-pickup in ‘extensions_additional.conf’. Looks like this now:

[app-pickup]
include => app-pickup-custom
exten => _.,1,Noop(Attempt to Pickup ${EXTEN:2} by ${CALLERID(num)})
exten => _
.,n,Pickup(${EXTEN:2})
exten => _.,n,Pickup(${EXTEN:2}@ext-local)
exten => _
.,n,Pickup(${EXTEN:2}@from-internal)
exten => _.,n,Pickup(${EXTEN:2}@from-internal-xfer)
exten => _
.,n,Pickup(${EXTEN:2}@from-did-direct)
exten => _.,n,Pickup(FMPR-${EXTEN:2})
exten => _
.,n,Pickup(LC-${EXTEN:2}@from-internal)
exten => _.,n,Pickup(FMPR-${EXTEN:2}@from-internal)
exten => _
.,n,Pickup(FMPR-${EXTEN:2}@from-did-direct)
exten => _**.,n,Hangup

; end of [app-pickup]

Tested and works fine.

chat later
Marthin

Marthin,

I take it that you don’t read notices at the top of the file and just go around hacking files for the fun of it?

take a look at the top of the extensions_additional.conf again and you should see the following: ;--------------------------------------------------------------------------------; ; Do NOT edit this file as it is auto-generated by FreePBX. All modifications to ; ; this file must be done via the web gui. There are alternative files to make ; ; custom modifications, details at: http://freepbx.org/configuration_files ; ;--------------------------------------------------------------------------------;

extensions_additional.conf is NOT supposed to be edited as it is regenerated each and every time you make a change. So please don’t go giving that as a solution as it will cause more problems.

Please go to page mentioned above and it will tell you what files you can edit and even tell you which file you can place this change in so that it works properly.

How to fix this.
I got the same issue with transferred calls.
I don’t know in which file to make fix.

As a stopgap measure I suppose you could try using marthin’s fix, but don’t change extensions_additional.conf - instead copy the entire [app-pickup] context (make sure you get all of it) from that file and then paste it into extensions_override_freepbx.conf and then add his one-line fix. I’ve put this issue into the bug tracker so perhaps it will be fixed (and if it is, be sure to remove the temporary fix from extensions_override_freepbx.conf or it may break something else down the road).

See #3712, in the future these are better noticed in the bug tracker, thanks wiseoldowl for putting it there to bring it to our attention. It’s been fixed and will be pushed out next time core is published.

Hi all! I have read the fix to #3712 abd tried to apply to my system, but without success. My system is running an Asterisk 1.2.30 with Freepbx 2.3.10. We just can pickup calls, but we cannot direct pickup. Here is the error in the log:

Aug 5 15:11:00 VERBOSE[27040] logger.c: – Executing NoOp(“SIP/3499-08d2e1e0”, “Attempt to Pickup 3521 by 3499”) in new stack
Aug 5 15:11:00 VERBOSE[27040] logger.c: – Executing Pickup(“SIP/3499-08d2e1e0”, “3521”) in new stack
Aug 5 15:11:00 DEBUG[27040] app_directed_pickup.c: No originating channel found.
Aug 5 15:11:00 DEBUG[27040] app_directed_pickup.c: No call pickup possible…
Aug 5 15:11:00 VERBOSE[27040] logger.c: == Spawn extension (from-internal, **3521, 2) exited non-zero on ‘SIP/3499-08d2e1e0’
Aug 5 15:11:00 VERBOSE[27040] logger.c: – Executing Macro(“SIP/3499-08d2e1e0”, “hangupcall”) in new stack
Aug 5 15:11:00 VERBOSE[27040] logger.c: – Executing ResetCDR(“SIP/3499-08d2e1e0”, “w”) in new stack
Aug 5 15:11:00 DEBUG[27040] cdr_addon_mysql.c: cdr_mysql: inserting a CDR record.
Aug 5 15:11:00 DEBUG[27040] cdr_addon_mysql.c: cdr_mysql: SQL command as follows: INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid) VALUES (‘2013-08-05 15:11:00’,’“device” <3499>’,‘3499’,’**3521’,‘from-internal’, ‘SIP/3499-08d2e1e0’,’’,‘ResetCDR’,‘w’,0,0,‘NO ANSWER’,3,‘3499’,‘1375726260.56877’)

Please, anyone has some idea?

Thanks,
Denilson.

You need to upgrade your asterisk and FreePBX to a current stable version. That version is 6-7 years old now.

Hi Tony!

I will do it, but I would like to migrate it. Is it possible?
My plan is:
Upgrade my ipbx asterisk 1.2/freepbx 2.3 to 2.8
Export my setup
reinstall my server: http://wiki.freepbx.org/display/HTGS/Installing+FreePBX+on+Centos+6.3
But, install freepbx 2.8 instead 2.11.
Import my setup
Upgrade to Freepbx 2.11
Contract Schmooze (Basic contract x 15 servers).
If I have only one server, I could reinstall from scratch, but I have 15! So, I need to migrate them.

Thanks
Denilson