[OpenSER-Devel] OpenSER as semi-B2BUA
Alex Hermann
alex at speakup.nl
Fri Jul 25 18:19:17 CEST 2008
Hello all,
i sometimes see a situation in which the UDP packets exceed the MTU. Normally
this wouldn't be a problem, except that there seems to be a substantional
amount of DSL modems/router which can't decently reassemble those. The
biggest contributor tot the size are the Record-Route and via headers. Now I
have an idea to get rid of a lot of these and I'd like some opinions on the
feasability and /or requirements.
The idea is to use the dialog module to make OpenSEr dialog-statefull and
strip each passing request of all record-route headers and only send it out
with it's own RR header. The dialog module already stores the RR headers, and
can on each reply strip the RR headers from the reply and add the relevant RR
headers from the original request to the reply (same for via headers).
This will substantially shrink the packets, and has an additional benefit in
that it does topology hiding. When this is combined with some header
mangling, OpenSER turns into a semi-B2BUA.
To illustrate my maybe confusing story above, a short example for packets
passing through the proxy:
registrar -> proxy
INVITE a at example.com SIP/2.0
Record-Route: <sip:registrar;lr>
Record-Route: <sip:load-balancer;lr>
Via: SIP/2.0/UDP registrar
Via: SIP/2.0/UDP balancer
Via: SIP/2.0/UDP uac
.
proxy -> UAS
INVITE a at example.com SIP/2.0
Record-Route: <proxy;lr>
Via: SIP/2.0/UDP proxy
.
UAS -> proxy
SIP/2.0 200 OK
Via: SP/2.0/UDP uas
Via: SIP/2.0/UDP proxy
Record-Route: <proxy;lr>
.
proxy -> registrar
SIP/2.0 200 OK
Via: SIP/2.0/UDP registrar
Via: SIP/2.0/UDP balancer
Via: SIP/2.0/UDP uac
Record-Route: <proxy;lr>
Record-Route: <sip:registrar;lr>
Record-Route: <sip:load-balancer;lr>
.
--
Greetings,
Alex Hermann
More information about the Devel
mailing list