in rtpengine v11.5.
Setup:
- Kamailio sends xmlrpc-callback=<kamailio-ip> in the ng offer
- rtpengine.conf: timeout=30, b2b-url=http://%%:8080/rpc, xmlrpc-format=2
The problem:
When the SIP client (phone) crashes without sending a BYE, it stops sending
RTP. However, FreeSWITCH (the other leg) is still alive and continues sending
RTP packets towards rtpengine. Since rtpengine's timeout fires only when ALL
media streams are dead (no traffic from either direction), the callback is
never triggered — FS keeps the stream alive indefinitely.
From the man page:
"If
all media streams belonging to a particular call go dead, then the call
is removed from rtpengine's internal state table."
Question:
Is there a way to trigger the xmlrpc-callback when only ONE direction goes
silent (i.e. the client side stops sending), even while the other side
(FS/B2BUA) is still active? Something like a per-direction timeout or a
one-way media detection flag in the ng offer?
If this is not currently supported, is it on the roadmap, or would you
suggest an alternative approach?
Due to technical difficulties, it is not possible to enable rtp-timeout-sec on FS as a workaround.
Thank you!