One way audio after called party removes caller on HOLD

Hi,

I am seeing issues with the way asterisk controls the call HOLD feature
Call path: (caller)External peer–> Asterisk (1. 8 )–> internal proxies–> Internal Media servers and IVRs (call then forwards to a cellphone over the PSTN)
The called party uses a web interface to place the caller on HOLD. At this point the internal IVRs signal to the asterisk via UPDATES and starts playing the MOH. However, the asterisk sitting in the middle of the IVR pool and external peer, takes control of the HOLD and starts playing its own local MOH file to the peer and eventually, never stops playing it even after the called party releases the HOLD.

Steps taken:
–> I commented out the below line from the musiconhold.conf file. After this, the asterisk stops playing the local MOH file and just passes the HOF it receives from the IVRs to the external peer. This is good progress, however, it never resumes RTP to the IVR servers after the HOLD is retrieved causing one way audio after releasing the HOLD
;[default]
;mode=files
;directory=/var/lib/asterisk/moh
–> I tried the exact setup on an asterisk 1.4 and didn’t have to make any changes to the musiconhold.conf file. It simply passes the audio from the Internal IVRs and resumes RTP even after the HOLD is released. This feature works great on 1.4

Question: Is this a bug in 1.8 or is there something I need to explicitly turn on or turn off on astersik 1.8 to get this working as expected?

Here’s what my sip.conf file looks like. Please not that I tried enabling canreinvite=no and that didn’t change anything.
[general]
context=sip
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
relaxdtmf=yes
rfc2833compensate=yes
nat=never
;allow=all
allow=ulaw
allow=alaw
allow=g729

[Internal SIp proxy]
type=friend
qualify=yes
context=sip
;canreinvite=no
host=xx.xx.xx.xx

[External PEER]
qualify=yes
type=friend
context=sip
allow=ulaw
allow=alaw
allow=g729
;canreinvite=no
host=xx.xx.xx.xx
I highly appreciate your input and suggestions on this.

Thank you
Varsha

SIP trace please.

Is the hold done by media direction attribute or IP address? Is it early or late offer SDP?

Asterisk 1.6.1 has problems with later offer SDP on reinvites. I don’t know if they have been fixed in later official versions. (It offers its negotiated state rather than its desired state.)