Hi Alex
As far as I know, this situation badly cries out for a lightweight B2BUA. It's no accident that pretty much all SBCs are based on a B2BUA.
However, I could be mistaken...
You are absolutely right!
Only issue: We have not found a B2BUA behaving the way we would like.
=> Any recommendations are very appreciated <=
There are basically two places we could put a B2BUA.
1: In front of the kamailio registrar (transparent registrar) 2: Between Registrar and our Routing Core
We have been burning through:
* Asterisk (can not route registrations, very little control over failure handling, wants to handle RTP)
* Sippy B2BUA (After some attempt in implement missing features like routing of OPTIONS messages, we just gave up)
* FreeSwitch (Looked very promising, but failed by not correctly handling / dropping packets as duplicates that are not duplicate in 100rel required situations with same rseq from parallel forked calls/different totag)
* OpenSIPS (Failed in almost same scenario as FreeSwitch, I believe the issue was that all replies with different totag were mapped to the same totag on the first leg, causing the origin to drop packets as duplicate)
* LibreSBC (After contact with development team, learned that their scope is interconnections, not serving as SBC for CPE access)
Dropping 100rel and PRACK support might have solved the issue with FreeSwitch and OpenSIPS, but this is something which I would prefer not to do.