Problem in xlite

we are have problem while putting a caller on-hold from xlite and calls get dropped in 30 sec or sometimes in 60 sec (increments of 30 sec)

we tried Zoiper but we are not able to un-hold after putting a caller on-hold.

with Xpro: after on-hold we are not able to re-establish media.

our out dial plan is as below:

[QUEUE-CALLS]
exten => _5XXXX,1,Answer()
exten => _5XXXX,2,Wait(1)
exten => _5XXXX,3,Dial(SIP/${EXTEN},30,rtM(agentchannel^${EXTEN}))
exten => _5XXXX,4,Goto(QUEUE-2,s,3)

;exten => h,1,deadagi(redirect.agi|${SESSION}|${servicelevel})
exten => h,1,Deadagi(hangqueue.agi|${SESSION}|${servicelevel})
exten => h,2,Hangup()

[macro-agentchannel]
exten => s,1,agi(monitorfile.agi)
exten => s,2,agi(agentchannel.agi|${ARG1}|${FILENAME}-in.wav49)
exten => s,3,MixMonitor(${FILENAME}-in.wav49)

Thanks

do you have rtptimeout or holdrtptimeout set in your SIP configuration?