Upgrade 3CX to v18 and get it hosted free!

SER example NAThelper

Author image

Using SER as an outbound SIP proxy with NAT support

SIP Express Router, SER, can be used to help overcome the problem of SIP clients behind NAT devices trying to communicate with phones on the other side of the Internet – through the NAT.

What’s needed

Diagram

REQUEST: It would be nice to see a diagram for this example. Explaining the location of UA’s, SER, private and public IPs.

Example of configuration

Nathelper/rtpproxy has been changing rapidly, see recent mailing list messages and check out this example.
jht2 12/25/03

  --------------------------------------------------
  #
  # $Id: ser.cfg,v 1.21 2003/06/04 13:47:36 jiri Exp $
  #
  # simple quick-start config script
  #

   # ----------- global configuration parameters ------------------------

  debug=3         # debug level (cmd line: -dddddddddd)
  fork=yes
  log_stderror=no	# (cmd line: -E)

  /* Uncomment these lines to enter debugging mode 
  debug=7
  fork=no
  log_stderror=yes
  */

  check_via=no	# (cmd. line: -v)
  dns=no           # (cmd. line: -r)
  rev_dns=no      # (cmd. line: -R)
  port=5060
  children=4
  fifo="/tmp/ser_fifo"

  alias=mydomain.dyndns.org

  # ------------------ module loading ----------------------------------

  
  loadmodule "/usr/local/lib/ser/modules/nathelper.so"
  loadmodule "/usr/local/lib/ser/modules/textops.so"
  loadmodule "/usr/local/lib/ser/modules/sl.so"
  loadmodule "/usr/local/lib/ser/modules/tm.so"
  loadmodule "/usr/local/lib/ser/modules/rr.so"
  loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
  loadmodule "/usr/local/lib/ser/modules/usrloc.so"
  loadmodule "/usr/local/lib/ser/modules/registrar.so"

  
  # ----------------- setting module-specific parameters ---------------
  # -- usrloc params --
  modparam("usrloc", "db_mode",   0)


  # -- rr params --
  # add value to ;lr param to make some broken UAs happy
  modparam("rr", "enable_full_lr", 1)

  # -------------------------  request routing logic -------------------

  # main routing logic

  route{

	# initial sanity checks -- messages with
	# max_forwards==0, or excessively long requests
	if (!mf_process_maxfwd_header("10")) {
		sl_send_reply("483","Too Many Hops");
		break;
	};
	if (len_gt( max_len )) {
		sl_send_reply("513", "Message too big");
		break;
	};

	# we record-route all messages -- to make sure that
	# subsequent messages will go through our proxy; that's
	# particularly good if upstream and downstream entities
	# use different transport protocol
	record_route();	
	# loose-route processing
	if (loose_route()) {
		t_relay();
		break;
	};

	# if the request is for other domain use UsrLoc
	# (in case, it does not work, use the following command
	# with proper names and addresses in it)
	if (uri==myself) {

		if (method=="REGISTER") {
			save("location");
			break;
		};

		# native SIP destinations are handled using our USRLOC DB
		if (!lookup("location")) {
			sl_send_reply("404", "Not Found");
			break;
		};
	};

       #inserted by klaus
       if (method=="INVITE") {
                record_route();
                force_rtp_proxy();
                /* set up reply processing */
                t_on_reply("1");
        };


	# forward to current uri now; use stateful forwarding; that
	# works reliably even if we forward from TCP to UDP
	if (!t_relay()) {
		sl_reply_error();
	};

  }

  #inserted by klaus
  # all incoming replies for t_onrepli-ed transactions enter here
  onreply_route[1] {
       if (status=~"[12][0-9][0-9]")
                force_rtp_proxy();
  }

See also


Article Reviews

Write a Review

Your email address will not be published. Required fields are marked *

Required Field. Minimum 5 characters.

Required Field. Minimum 5 characters, maximum 50.

Required field.There is an error with this field.

Required Field.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

There are no reviews for this article. Be the first one to write a review.

Related Posts:

Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.