Hi,
Alex Balashov wrote:
- Inline B2BUA in the signaling path of all calls;
1a) Make it do SSTs; or 1b) Make it relay media, too, and hang up the call (bidirectional BYE) on RTP receive timeout;
[...]
Needless to say, I am interested in the option that requires the least work but still solves the problem in an elegant way from a technical and--dare I say--aesthetic perspective.
you are right; with SEMS this needs some work. I wouldn't say it is a lot, as you have all the basic functionality already there, at least for 1.a.
For instance, it seems clear from looking at the SEMS-1.1.1 sources that SSTs are supported in principle in core/plug-in/session_timer. But unless I am missing something, I cannot find anywhere in the sources or examples where it is actually used.
have a look at core/plug-in/echo.
Session timer is implemented as SessionEventHandler (hooks that get called for every request received/sent), which you need to add to the session e.g. when you create it. In your case you would need to add it to both legs of the B2BUA call; e.g. if you start from auth_b2b you'd have to add it in both AuthB2BFactory::onInvite and AuthB2BDialog::createCalleeSession.
What I'm not sure is whether the configuration of session timer values works the way it should (configureModule), possibly you'd need to hack this a little.
As for 1.b, SEMS does not yet have an RTP relay mode (only transcode). If you are really interested in it, I think we can work on that; again, the basic components are there, it needs just adding some things here and there.
Regards Stefan