SCCP Call Status

Hi, I am hoping someone might be able to give me a pointer where to resolve an annoying issue.

I have 3 Cisco 7940 phones with the latest SCCP firmware and two sip phones connected to my FreePBX 2.7

I can call fine with full audio and can use the Hold/Transfer features with the following combinations;
SIP Phone > SCCP Phone
SIP Phone > SIP Phone
SIP Phone > SIP trunk
SCCP Phone > SIP phone

If however I call SCCP Phone > SCCP Phone or SCCP Phone > SIP trunk, the call connects and audio works perfectly but I cannot put the call on hold or transfer.

Has anyone got any ideas? It’s almost as if the Chan_SCCP-b V2 isn’t passing the call status to the source SCCP phone. It may be unrelated but I was originally trying to resolve DTMF not being sent by the SCCP phones where it is also working with the SIP handsets.