Hi,

o Iñaki Baz Castillo [11/28/08 11:10]:
Hi, as I already asked, I'm interested in a transparent B2BUA with SessionTimers in both legs. SEMS already allows it easily (it's a perfect transparent B2BUA and implements SS, it's ajust a matter of mixing some code).

But I wonder if, anyway, SEMS is appropiate for it. I don't want media services, IVR, leg_b authorization, announcements... just transparent B2BUA and SS. It would complement a SIP proxy so the mix would become a call statefull "SIP thing".

Obviously the proxy (*SER) is very faster ahndling transaction, how faster would be SEMS as transparent B2BUA?
run some load tests, only then you can really tell.

Could it be more appropiate to code a simple B2BUA from scratch using some available SIP stack (as PJSip and so)?
you will have to compare how different SIP stacks implement things (e.g. how timers are implemented, full vs. partial and early vs. lazy parsing, etc) and how much SIP related features they provide. then you have some architectural decisions: whether/how you do parallel processing, threads/locking/event passing etc.

SEMS' SIP stack's timers implementation compares favourably, i have been told. I think it parses all headers, and then collapses the not relevant ones (due to compatibility reasons with old unixsock ctrl). How much time is spent with this, should be a good case for kcachegrind. In SEMS, every dialog has its thread, which works on its event queue; for b2bua events are passed between the two threads. from my tests i have seen that locking of event queues is not a bottleneck, even with signaling only applications. If you have an application with media, it makes sense to spend one thread per session, because you won't have more than 10k sessions on one server anyway (limited network bw), and you simplify application development by preventing different sessions to block each other (e.g. doing some DB or other synchronous external request), one can doubt if that makes sense for a 'dialog aware proxy' type of application.

Whether the abstraction layers by OO with polymorphism style suits your concept of software depends on personal taste I would say, i like things being structured this way. Using STL has its drawbacks, but i guess that e.g. the map implementation (used to look up session for a request etc) performs quite well, and it is just very convenient.

Apart from these considerations, obviously a proxy like *ser is much more optimizied, but if you put the dialog layer and then the b2bua on top you should design your architecture carefully if you don't want to loose the good performance. for example, the performance difference for signaling comparing an (earlier) ser+binrpc with sipctrl is 3-10x.

Stefan


Thanks a lot for your opinions.


--
Stefan Sayer
VoIP Services

[EMAIL PROTECTED]
www.iptego.com

IPTEGO GmbH
Am Borsigturm 40
13507 Berlin
Germany

Amtsgericht Charlottenburg, HRB 101010
Geschaeftsfuehrer: Alexander Hoffmann
_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems

Reply via email to