I’ve never been a fan of the default parking functionality. For larger systems, you’ll want to explicitly park a call on a specific space. Then you can set the blf on your phone(s) to monitor that.
Here’s what I have in anyone else would like it…
Context of extensions:
exten => _10XXX,1,Goto(hints,${EXTEN},1)
same => n,Hangup()
in extensions.conf:
[hints]
exten => _ZXXXX,hint,SIP/${EXTEN}
exten => _10XXX,hint,Custom:${EXTEN}@hints
exten => _7XXXX,hint,Custom:${EXTEN}@hints
exten => _10XXX,1,NoOp(Parking for ${EXTEN} State: ${DEVICE_STATE(Custom:${pos}@hints)})
same => n,Set(lot=locallot)
same => n,Set(pos=${EXTEN})
same => n,Set(PARKINGEXTEN=${pos})
same => n,GotoIf($["${DEVICE_STATE(Custom:${pos}@hints)}"="RINGING"]?pickup:park)
same => n(park),Set(DEVICE_STATE(Custom:${EXTEN}@hints)=RINGING)
same => n,Park(${lot})
same => n,Hangup()
same => n(pickup),Set(DEVICE_STATE(Custom:${pos}@hints)=NOT_INUSE)
same => n,ParkedCall(${lot},${pos})
same => n,Hangup()
exten => i,1,Hangup()
exten => t,1,Hangup()
exten => h,1,NoOp(POS ${pos} EXTEN ${EXTEN} PICKUPMARK ${__PICKUPMARK})
same => n,Set(DEVICE_STATE(Custom:${pos}@hints)=NOT_INUSE)
same => n,Set(DEVICE_STATE(Custom:${ARG1}@hints)=NOT_INUSE)
same => n,Hangup()
res_parking.conf:
[locallot]
findslot => first
parkingtime => 300
comebacktoorigin => yes
parkedcalltransfers => both
parkedcallreparking => both
context => parkedcalls
parkext => 100000
parkpos => 10000-10999
Cisco phone button:
fnc=sd+blf;ext=10009#@$PROXY;sub=10009@$PROXY;nme=Park1