Hi Alex,

On 08.10.10 13:33, Alex Balashov wrote:
Of course, this discussion revolves around the premise that you intend SEMS to continue to be a "thin" / "transparent" B2UA that mostly passes requests and replies unadulterated, except in the ways required for distinct logical call legs (distinct branch ID, Call-ID, CSeq number, From and To tags, etc.). I assume that's true.


Right, that's true for the core classes (AmB2BSession, AmB2ABSession).

But just theoretically, one could make the argument that the SST B2BUA should be an "opaque" B2BUA: it should absorb every sequential request by default, completely isolate the states of the two call legs, and explicitly bridge only certain kinds of requests and replies between the call legs, like negative final responses, BYEs, etc.

The mess that this gets you into is negotiation. What if one endpoint sends a legitimate reinvite to change codecs, say, and SEMS is always the logical endpoint of such a request? What should it do, especially if media is not flowing through it? I imagine this and code-level constraints is the heart of the reason why you went for the transparent B2BUA option instead.

Once you have figured out how "opaque" or "transparent" you want your B2BUA to be, you can implement those policies very easily in SEMS. It is only about filtering the flow of messages passed from side to the other. Most commercial SBCs are quite configurable when it comes to "opacity".

In my opinion, a B2BUA should be as transparent as possible, so that it allows for new applications to be deployed on the endpoints without requiring specific support in the network. This is also the idea behind a SIP proxy ;-)

Cheers
Raphael.

_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems

Reply via email to