[asterisk-dev] Call unhold/topology change indication order

Joshua C. Colp jcolp at sangoma.com
Wed May 11 07:05:55 CDT 2022


On Wed, May 11, 2022 at 8:54 AM Fridrich Maximilian <M.Fridrich at commend.com>
wrote:

> Hi,
>
> I am currently working on fixing [ASTERISK-30051] res_pjsip: No video
> after un-hold with moh_passthrough=yes. [1]
>
> I have debugged the code with DEBUG_THREADS enabled (which resolves the
> issue)
> and without and compared the two. The issue clearly seems to be that
> chan_pjsip:chan_pjsip_indicate() is called in the wrong order:
>
> 1. It is called to indicate AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE
> 2. It is called to indicate AST_CONTROL_UNHOLD
>
> With DEBUG_THREADS enabled, AST_CONTROL_UNHOLD is always called first and
> video
> works as expected.
>
> Before I try to fix the underlying issue (which I think I have identified
> - see
> below) I want to understand why AST_CONTROL_UNHOLD needs to be indicated
> before
> AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE.
>
> Does anyone have any idea why it has to be called in that order?
>

You're in off-nominal untested un thought of territory, so the code
behavior probably reflects that. Specifically having both audio and video,
and doing hold/unhold. Audio hold is special and separate from stream
negotiation, while video isn't, so things probably don't handle that.

-- 
Joshua C. Colp
Asterisk Technical Lead
Sangoma Technologies
Check us out at www.sangoma.com and www.asterisk.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20220511/95c74395/attachment.html>


More information about the asterisk-dev mailing list