Agent (via sip trunk) can't come off hold in queue

Asterisk version - 1.4.19 (although problem also occured on 1.4.14)
CCM - (pretty sure the problem isn’t here though - transfer/holds are used in asterisk for other functions of this that work)

I’ve setup asterisk to handle some of the more intresting call queues and features (including voicemail, which is working brilliantly) of my cisco call manager setup, via a sip trunk which is working well.

Recently I’ve configured asterisk as a CallQueue for IT Support, which is handling calls nicely at the moment - but my problem occurs after someone is put on hold (or as part of a consult transfer) and we try to take them off hold. On the called phone we can hear voice from the calling phone, but the calling phone never get taken off hold (they can still hear hold music). The agents are logged in via AgentCallbackLogin

agent => 1311,1311,agent1
agent => 1312,1312,agent2
agent => 1313,1313,agent3
agent => 1314,1314,agent4
agent => 1315,1315,agent5
;musicclass = default
musicclass = support
timeoutreset = yes
strategy = rrmemory
;strategy = leastrecent
announce-holdtime = yes
ringinuse = no
joinempty = strict
member => Agent/1313
member => Agent/1314
member => Agent/1315
timeout = 20
announce-frequency = 30
announce-holdtime = yes
host=x.x.x.x ;-----removed----

Has anyone got any ideas for this? - is this a known problem, or a misconfiguration of some kind from my end?

I have tried just about everything I can think of - any ideas??

thanks in advance