[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