Depending from case to case, the record-routing can be avoided,
especially if you know the environment and only one server is used
between two endpoints. At that moment you can store existing contact in
htable and replace it with one having the server ip. You can eventually
use uuid to generate the contact to be unique, but not a must.
The logic would be:
- call comes in, store $sht(x=>$ci::a1:contact) = contact uri
- store $sht(x=>$ci::a1:ftag) = From tag
- replace contact header with one using server ip and send out
- store new contact uri as $sht(x=>$ci::a2:contact)
- replies comes in, store $sht(x=>$ci::b1:contact) = contact uri
- replace contact header with another new one using server ip and send out
- store new contact uri as $sht(x=>$ci::b2:contact)
- when a request within dialog comes in, based on From tag and
$sht(x=>$ci::a1:ftag), you detect the direction and based on that you
set the appropriate r-uri using either $sht(x=>$ci::a1:contact) or
$sht(x=>$ci::b1:contact) and replace the contact with a2/b2 variants
Alternative to htable is to use database or other storage (e.g., nosql
like redis, mongo, ...).
As a matter of fact, upcoming 4.4 includes the topos module which should
do what you want here, but due to lack of time caused by some unexpected
events, at this moment works properly only for MESSAGE requests. By the
time of release I should have the time to fix the dialog routing as well.
Cheers,
Daniel
On 20/03/16 02:41, Matthew Harrold wrote:
Thanks for your quick response.
No, you can't remove those headers. They serve an essential
purpose and the endpoints won't consider the requests or responses
valid without them.
It should be theoretically possible to remove some of the via and
record-route headers, assuming the contact is also re-written. The end
point's (phones) themselves do not need to be aware of anything
downstream of the SIP server they're registered too.
See my blog post on this topic:
http://blog.csrpswitch.com/sip-udp-fragmentation-and-kamailio-the-sip-heade…
Thanks for the link!
And you certainly can't hide topology this way.
-- Alex
On 03/19/2016 09:26 PM, Marrold wrote:
Hi,
Is there any way to remove Via and Record-Route headers from
requests
sent to an endpoint and update the contact header, but have
Kamailio
statefully remember where the replies need to route?
I imagine this would involve mangling the packets slightly to
behave
similar to a B2BUA.
My motivations, in order of priority -
1) Reduce UDP packet size to avoid MTU limitations
2) Improve interoperability, don't expect end points to be able to
properly parse / process many via / record-route headers
3) Hide topology.
If someone could point me in the right direction in terms of
configuration or modules, that would be great.
Thanks
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
mailing list
sr-users(a)lists.sip-router.org
<mailto:sr-users@lists.sip-router.org>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Alex Balashov | Principal | Evariste Systems LLC
1447 Peachtree Street NE, Suite 700
Atlanta, GA 30309
United States
Tel: +1-800-250-5920 <tel:%2B1-800-250-5920> (toll-free) /
+1-678-954-0671 <tel:%2B1-678-954-0671> (direct)
Web:
http://www.evaristesys.com/,
http://www.csrpswitch.com/
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
list
sr-users(a)lists.sip-router.org <mailto:sr-users@lists.sip-router.org>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla
http://www.asipto.com
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio World Conference, Berlin, May 18-20, 2016 -
http://www.kamailioworld.com