[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