[Users] Problem with a NATing proxy
Ramona Modroiu
ramona at voice-system.ro
Thu Aug 17 10:39:49 CEST 2006
Hi,
you should start with the config file from
http://voip-info.org/wiki/view/OpenSER+And+RTPProxy
It handles NAT traversal and user location.
Cheers,
Ramona
Jeremie Le Hen wrote:
> Hi,
>
> first of all, I am new to the SIP world, so please forgive me if
> I ask anything dumb.
>
> I am trying to set up a NAT-traversal SIP proxy, with the help
> of the nathelper module and rtpproxy. I only have access to the
> proxy and one softphone behind it.
>
> I am facing two problems: when someone in the outer world wants to call
> my softphone (which is behind the proxy), the proxy forwards the
> INVITE message to itself and recurses until the mf_process_maxfwd_header()
> statement stops further processing. I am not sure how to handle this.
> My guess is that I should use the registrar module and when the
> proxy receives an INVITE message, it should use registered() method
> in order to know where to forward the request ; but I don't know how
> to do that. Help would be welcome.
>
> My second problem is that when the peer hangs off the phone, I should
> receive a BYE message but I can't see it. Given I have no access on
> the other end, I guessed that the BYE message had been sent elsewhere.
> That's why I fixed the Contact header field. However, I still can't
> see actions coming from the outer phone. Any idea ?
>
> (I didn't attached any packet dump for now because I think it can
> be more misleading than informative because there are two proxies
> on the same machine: one that is a tunnel broker to encapsulate
> VoIP traffic in HTTP, and the other one is OpenSER. Basically,
> every SIP session is being tunneled in HTTP, then the datagram
> in unwrapped by the first proxy and then forwarded to the second
> one, which is OpenSER. Nonetheless I would be glad to provide
> any packet dump upon request.)
>
> My configuration file is attached. If you find any other
> mistakes or inconsistencies in this configuration file, please tell me.
>
> Best regards,
>
> ------------------------------------------------------------------------
>
> # ----------- global configuration parameters ------------------------
>
> log_facility=LOG_LOCAL0
> unix_sock="/var/run/voipproxy/openser.sock"
> user=voipproxy
> group=voipproxy
> listen=1.2.3.4
>
> # ------------------ module loading ----------------------------------
> mpath="/usr/local/lib/openser/modules"
> loadmodule "nathelper.so"
> loadmodule "maxfwd.so"
> loadmodule "textops.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "registrar.so"
> loadmodule "usrloc.so"
> loadmodule "sl.so"
>
> # 9Pass phone sets the Expires value to 3000, this is far too high.
> modparam("registrar", "max_expires", 600)
>
> # modparam("registrar", "sip_natping_flag", 7)
>
> modparam("nathelper", "rtpproxy_sock", "unix:/var/run/voipproxy/rtpproxy.sock")
>
> # This parameter comes from a patch I got here
> # http://www.openser.org/pipermail/devel/2006-February/002103.html
> # and allows to force the Contact HF.
> modparam("nathelper", "contact_expander", "1.2.3.4:5060")
>
>
> # ------------------ request-routing script --------------------------
>
> # main routing logic
>
> route {
> if (!mf_process_maxfwd_header("10")) {
> sl_send_reply("483", "Too many hops");
> return;
> }
>
> if (msg:len > max_len) {
> sl_send_reply("513", "Message too big");
> return;
> };
>
> loose_route();
>
> if (method == "REGISTER") {
> fix_nated_register();
> #fix_nated_contact();
> #save_noreply("location");
> } else {
> #lookup("htproxy");
> if (method == "INVITE") {
> record_route();
> force_rtp_proxy("r");
> t_on_reply("1");
> } else if (method == "BYE" || method == "CANCEL") {
> unforce_rtp_proxy();
> };
> };
>
> fix_nated_contact();
>
> /*
> * Set up reply processing and forward statefuly, so that we
> * don't bother rtpproxy each time we see a transaction.
> */
> t_relay();
> }
>
> onreply_route[1] {
> if (status =~ "(183)|2[0-9][0-9]") {
> force_rtp_proxy("r");
> };
> }
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>
More information about the sr-users
mailing list