[OpenSIPS-Users] TCP to UDP proxy
Bogdan-Andrei Iancu
bogdan at opensips.org
Wed Oct 30 09:52:00 CET 2013
Hello Simon,
Most probably it is a mistake on the way you do record_routing (for
initial INVITE) and loose_route (for sequential requests). All
sequential requests are driven by this mechanism. If the case, check how
it suppose to work :
http://www.opensips.org/Documentation/Webinars#toc12 (5.5)
Basically you need to do record_route() for INVITE and loose_route() for
ACK - OpenSIPS will take care of changing the interface for the ACK
after the loose_route() call.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 10/25/2013 07:42 PM, Simon Quigley wrote:
> Hello,
>
> I'm trying to use OpenSIPS as a TCP to UDP proxy, (with the registrar
> module disabled) connecting all sorts of devices from different IP
> addresses over TCP to a UDP switch.
>
> So far I've managed to get OpenSIPS configured to change the contact
> header, and the SDP, append the transport, and forward the packets
> correctly, for making an outbound call (from TCP device to UDP switch).
>
> I've got incoming to work somewhat (from UDP switch to TCP device),
> the INVITE will pass, and the TRYING/RINGING gets back to the switch,
> however the issue I'm having is that the OK packet from the TCP device
> is sent to the switch, which responds with the ACK, however the
> contact header is wrong, and OpenSIPS is trying to sent the ACK to the
> internal non routable IP of the device.
>
> As a result the call comes up, but the device has an ACK timeout and
> drops the call.
>
> I'm having difficulties working out how to get the contact header
> mangled sufficiently for the OK/ACK to contain the routable IP of the
> TCP device, rather than it's internal/behind NAT IP.
>
> I've tried removing the header, using loose_route, using t_relay, and
> (am currently attempting) to use route(relay).
>
> Also of relevance, is the fact that I'm running OpenSIPS on a Google
> Compute VM, so it's behind 1 to 1 NAT, with a non routable IP on the
> VM, but I have assigned a static routable IP to the 1 to 1 NAT, and I
> have DNS pointing to this routable IP.
>
> Here's my config file, excluding default values/routes etc:
>
> listen=udp:[internal VM IP]:5060
> listen=tcp:[internal VM IP]:5060
>
> disable_tcp=no
>
> advertised_address="[DNS name]"
> alias="[DNS name]"
>
> route{
> if (src_ip != "[switch ip]"){
> # from device
> if (is_method("INVITE")) {
> fix_nated_sdp("7");
> }
> else if (is_method("OPTIONS")){
> exit;
> }
>
> fix_nated_contact();
> forward ("udp:[switch ip]:5060");
> }
>
> else if (src_ip == "[switch ip]"){
> # from switch
> if (is_method("INVITE")) {
> fix_nated_sdp("7");
> }
> else if (is_method("ACK")) {
> fix_nated_contact();
> }
>
> # mangle to TCP
> $du = $ru + ";transport=tcp";
>
> route(relay);
> }
>
> exit;
> }
>
> Is the issue perhaps related to the fact I'm not recording a route, so
> it doesn't know how to correctly route the response, or am I just
> missing something obvious?
>
> Thanks,
> Simon
>
> --
> Simon Quigley, Systems Engineer
> Versature Corp. | 877-498-3772 x128
>
> Follow us on Twitter - http://twitter.com/Versature
> Check out the Versature Blog - http://inside.versature.com
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20131030/e751b49d/attachment-0001.htm>
More information about the Users
mailing list