ARI. channel hold

Hello all

I have a bridge with two channels - CHAN_1 and CHAN_2. I request [POST] /channels/{CHAN_1_id}/hold and asterisk put this channel to hold - I can hear only MOH and I can say to bridge, and other channels in bridge can hear CHAN_1 (is it normal that they can hear CHAN_1?). My WebRTC client (JsSIP 3.3.10) sending reINVITEs every 90 seconds with Session-Expires: 90;refresher=uac and a=sendrecv in sdp. When asterisk receives this reINVITE CHAN_1 can hear bridge members and continue hear moh.
I can see this in console:

-- Started music on hold, class 'default', on channel 'SIP/kamailio-00000071'                         
.... 30-40 seconds ....
> Locally RTP bridged 'SIP/kamailio-00000071' and 'SIP/kamailio-00000070' in stack

The question is - is described behavior normal, may be it is a bug?
(Actually my task is to make channel deaf (I want bridge members can hear them but this channel don’t hear them, but moh)
(and sorry for my bad English)

After I moved to chan_pjsip nothing changed except session-expires timeout.
asterisk in invite sends Session-Expires: 1800
so, holded channel will hear the bridge and moh in 900 seconds

The hold route means place hold music to the channel. It does not alter the media coming from the channel, as normally that wouldn’t matter. There is a mute route[1] which can be used to stop audio coming from the channel.

[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+17+Channels+REST+API#Asterisk17ChannelsRESTAPI-mute

so, holding channel should not send sdp a=sendonly to endpoint?

That functionality is not supported by chan_sip, and in chan_pjsip it is an option called moh_passthrough[1] that is disabled by default. Normally hold music is generated by Asterisk itself.

[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+17+Configuration_res_pjsip

understood, thank you