Playing a sound before the agent acknowledge

Hi,
I have a big problem here. I have to announce a sound the external agent (people who receive calls on their cell phones). And also i have to wait for them to press on the pound key. So what i did is this :
In agents.conf i make that all externl agent ackcall=yes.
This work great but if i dont play a sound to tell them to press the pound key, they just hang up.
So in the context where the agent is loged i did this :

[Queueout]
exten=>_XXXXXXXXXX,1,Set(CALLERID(number)=0${CALLERIDNUM:1:9})
exten=>_XXXXXXXXXX,2,Dial(ZAP/g1/${EXTEN},,A(outa))

That work great except for one thing, If the agent press the pound key before the sound outa is finished i got this error :

-- Zap/3-1 answered Local/5148897649@Queueout-5e96,2
    -- Playing 'outa' (language 'en')
    -- Local/5148897649@Queueout-5e96,1 acknowledged
    -- Agent/2220 answered Zap/5-1
    -- Playing 'operateurav' (language 'en')
    -- Local/5148897649@Queueout-5e96,1 answered, waiting for '#' to acknowledge
Dec 13 12:31:48 WARNING[21176]: chan_zap.c:4758 zt_write: Cannot handle frames in 2 format
Dec 13 12:31:48 WARNING[21176]: file.c:587 ast_readaudio_callback: Failed to write frame
    -- Hungup 'Zap/3-1'
  == Spawn extension (Queueout, 5148897649, 2) exited non-zero on 'Local/5148897649@Queueout-5e96,2'
Dec 13 12:31:48 WARNING[21172]: app_queue.c:2321 try_calling: Announcement file 'operateurav' is unavailable, continuing anyway...
Dec 13 12:31:48 WARNING[21172]: app_queue.c:2341 try_calling: Agent on Agent/2220 hungup on the customer.  They're going to be pissed.

Not sure what i should do here Can someone help me please ?

I wrote a macro a while back where it called the users cell phone and it played them the users name and then waited them to enter something with the readme command. A work around would be to create these macros for the diffrent users and then add local extensions to the que for each users cell phone.

Ok the macro i did its this :

exten=>s,1,wait(.25)
exten=>s,2,gotoif($["${soundav}" ="operateurav"]?20)
exten=>s,3,gotoif($["${sounda}" ="operateura"]?24)
exten=>s,4,gotoif($["${sounda}" ="ramassage"]?24)
exten=>s,5,gotoif($["${soundu}" ="operateuru"]?28)
exten=>s,6,gotoif($["${soundt}" ="operateurt"]?32)
exten=>s,7,gotoif($["${soundt}" ="ventes"]?32)
exten=>s,8,Read(ACCEPT|outa|1)
exten=>s,9,Gotoif($[${ACCEPT} = 1]?50)
exten=>s,10,Gotoif($[${ACCEPT} = 1]?50)
exten=>s,11,Gotoif($[${ACCEPT} = 1]?50)
exten=>s,12,Gotoif($[${ACCEPT} = 1]?50)
exten=>s,13,Hangup();
exten=>s,20,set(sound=${soundav},g)
exten=>s,21,Read(ACCEPT|${sound}|1)
exten=>s,22,goto(9)


exten=>s,24,set(sound=${sounda},g)
exten=>s,25,Read(ACCEPT|${sound}|1)
exten=>s,26,goto(9)


exten=>s,28,set(sound=${soundu},g)
exten=>s,29,Read(ACCEPT|${sound}|1)
exten=>s,30,goto(9)

exten=>s,32,set(sound=${soundt},g)
exten=>s,33,Read(ACCEPT|${sound}|1)
exten=>s,34,goto(9)

exten=>s,50,Playback(beep)

Its long a bit but the way i make it play a different sound depending on the queue.
But now i do have a little problem. I updated my asterisk to 1.4 beta4 because of a fax issue. And i got the message that agentcallbacklogin is depricated. So i made a few search on how to replace it but i din’t find anything. Is there anyone here that can tell me how to replace it??

Thanks