Inbound call routing

I am trying to forward calls coming in from a toll free number to my cell phone using my Asterisk PBX. Although the phone rings and is answered, I cannot hear the calling party and they cannot hear me either.

Extensions.conf

exten => MYTFNUMBER,1,Ringing
exten => MYTFNUMBER,2,Wait(1)
exten => MYTFNUMBER,3,Answer
exten => MYTFNUMBER,4,Dial(SIP/MYCELLNUMBER@${TRUNKSIP},21,o)
exten => MYTFNUMBER,5,Voicemail,u2100

CLI Output

Executing Ringing(“SIP/username-b7a30828”, “”) in new stack
– Executing Wait(“SIP/username-b7a30828”, “1”) in new stack
– Executing Answer(“SIP/username-b7a30828”, “”) in new stack
– Executing Dial(“SIP/username-b7a30828”, “SIP/MYCELLNUMBER@sip-context|21|o”) in new stack
– Called MYCELLNUMBER@sip-context
– SIP/sip-context-098b9358 is making progress passing it to SIP/username-b7a30828
– SIP/sip-context-098b9358 answered SIP/username-b7a30828
– Attempting native bridge of SIP/username-b7a30828 and SIP/sip-context-098b9358

When I change the option o in Dial() to r, the call connects and both ends can hear each other, but the sound quality becomes choppy. I am using Asterisk 1.2.24 on Centos 5. Any idea what the problem may be? Thanks in advance for any help.

Yousaf