[Users] Openser and MediaProxy

Norman Brandinger norm at goes.com
Sat Jul 8 01:58:32 CEST 2006


Hi Victoria,

You might want to check out the getting started documents at: 
http://www.onsip.org/  They have complete working examples using 
MediaProxy.  While their focus is on SER, The conversion to OpenSER 
should be pretty straight forward.

Regards,
Norm

Victoria Cortez wrote:
> Hello all:
>  
>     I suppose this is not the first time that someone make this 
> question, you may be tired of this, but believe me, I've not found 
> much information about this.
>  
>     Here we go: Can you help me to make my Openser work with 
> Mediaproxy. Below is my openser.cfg and my mediaproxy.ini
>  
>     A call from a Nated Calling Party results on "Message to big" error.
>  
>     Thanks in advance, guys.
>  
> Victoria Cortez
>  
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>  
> File: openser.cfg
>  
>
> # ----------- global configuration parameters ------------------------
>  
> debug=3            # debug level (cmd line: -dddddddddd)
> fork=yes
> log_stderror=yes    # (cmd line: -E)
>  
> check_via=no # (cmd. line: -v)
> dns=no          # (cmd. line: -r)
> rev_dns=no      # (cmd. line: -R)
> port=5060
> children=4
> fifo="/tmp/openser_fifo"
>  
>
> # ------------------ module loading ----------------------------------
>  
> mpath="/usr/local/lib/openser/modules/"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "mysql.so"
> loadmodule "domain.so"
> loadmodule "mediaproxy.so"
>  
> # mediaproxy
> modparam("mediaproxy", "mediaproxy_socket", 
> "/var/run/proxydispatcher.sock")
> modparam("mediaproxy", "natping_interval", 20)
>  
> # registrar
> modparam("registrar", "nat_flag", 6)
> modparam("registrar", "default_expires", 60)
> modparam("registrar", "min_expires", 30)
> modparam("registrar", "use_domain", 1)
>  
> modparam("usrloc", "use_domain", 1)
> modparam("usrloc", "db_mode",   0)
> modparam("rr", "enable_full_lr", 1)
>  
> # -------------------------  request routing logic -------------------
>  
> # main routing logic
>  
> route {
>  
>  if (!mf_process_maxfwd_header("10")) {
>    sl_send_reply("483", "Demasiados Saltos");
>  };
>  
>  if (msg:len >=  2048 ) {
>   sl_send_reply("513", "Message too big");
>   return;
>  };
>   
>  if (method==INVITE) {
>   if (client_nat_test("3")) {
>    setflag(6);
>    use_media_proxy();
>    route(1);
>    return;
>   }
>  };
>  
>  if (method==BYE || method==CANCEL) {
>   end_media_session();
>  };
>  
>  if (method==REGISTER) {
>   route(2);
>   return;
>  };
>  
>  if (method==INVITE) {
>   route(3);
>   return;
>  }
>  
>  if (!t_relay()) {
>   sl_reply_error();
>  };
>  
> }
>  
> # TODOS
>  
> route[1] {
>  t_on_reply("1");
>  
>  if (!t_relay()) {
>     if (method==INVITE || method==ACK) {
>      end_media_session();
>     };
>     sl_reply_error();
>  };
>  
> }
>  
> # REGISTER
>  
> route[2] {
>  if (client_nat_test("3")) {
>   log(1, "Se registro un cliente NAT");
>   setflag(6);
>   fix_contact();
>   force_rport();
>  };
>  
>  sl_send_reply("100", "Trying");
>  
>  if (!save("location")) {
>   sl_reply_error();
>  };
> }
>  
> # INVITE
>  
> route[3] {
>  if (client_nat_test("3")) {
>   setflag(7);
>   force_rport();
>   fix_contact();
>  }
>  
>  if (!lookup("location")) {
>   sl_send_reply("404", "No se encuentra el destino.");
>   return;
>  }
>  
>  if (isflagset(6) ||isflagset(7)) {
>   use_media_proxy();
>  }
>  
>  route(1);
>  
> }
>  
> onreply_route[1] {
>  if ((isflagset(6) || isflagset(7)) && 
> (status=~"(180)|(183)|2[0-9][0-9]")) {
>   use_media_proxy();
>  }
>  
>  if (client_nat_test("1")) {
>   fix_contact();
>  }
> }
>  
>  
> ----------------------------------------------------------------------------------------------------------------------
>  
>  
> File: mediaproxy.ini
>  
> ;
> ; Configuration file for MediaProxy
> ;
>  
> [Dispatcher]
> ;
> ; Section for configuring the proxy dispatcher
> ;
> ; The following options are available here:
> ;
> ; start         Boolean value that specifies if to start the dispatcher.
> ;               Default value: Yes
> ;
> ; socket        Path to the UNIX socket where the dispatcher receives 
> commands
> ;               from SER. This should match the value for 
> mediaproxy_socket in
> ;               openser.cfg. Use the keyword None to disable listening 
> on a
> ;               local socket.
> ;               Default value: /var/run/proxydispatcher.sock
> ;
> ; listen        Network address where the dispatcher receives commands 
> from
> ;               a remote Mediaproxy to close sessions for which media did
> ;               timeout.
> ;               Valid values for this are:
> ;
> ;                - Default
> ;                    when using this keyword it will listen on 
> 0.0.0.0:25061
> ;                - address[:port]
> ;                    listen on the specified address and port
> ;                    address can be an IP a hostname or the keyword Any
> ;                    (in which case it will listen on 0.0.0.0). If 
> address is
> ;                    a hostname, that should map in DNS to an IP address
> ;                    present on the machine, through an A record.
> ;                    If port is missing assume 25061.
> ;
> ;               Default value: Default
> ;     
> ; group         Put the socket in this group and make it group writable.
> ;               Default value: openser
> ;
> ; defaultProxy  Default mediaproxy to use in case the From/To domains
> ;               involved in the call don't define any.
> ;               Valid values for this are:
> ;
> ;                - None
> ;                    don't use any default proxies. domains without
> ;                    mediaproxy SRV records won't work
> ;                - /path/to/unix/socket
> ;                    use a single MediaProxy server identified by the 
> given
> ;                    UNIX socket path
> ;                - IP_or_hostname[:port]
> ;                    use a single MediaProxy server identified by its 
> network
> ;                    address. The network address consists of an IP 
> address
> ;                    or a hostname and an optional port number 
> separated by
> ;                    a double colon. If port is missing 25060 will be 
> assumed.
> ;                    Examples:
> ;                       10.0.0.1    (connect to 10.0.0.1 on port 25060)
> ;                       10.0.0.1:90 (connect to 10.0.0.1 on port 90)
> ;                       mp1.mydomain.com
> ;                       mp1.mydomain.com:7000
> ;                - domain://domain_name
> ;                    Use all MediaProxies defined by domain_name, honoring
> ;                    their priority and weight to create a cluster of 
> proxies
> ;                    with fallback and load balancing capabilities.
> ;
> ;               Default value: /var/run/mediaproxy.sock
> ;                      
> start = yes
> socket = /var/run/proxydispatcher.sock
> group = openser
> defaultProxy = /var/run/mediaproxy.sock
>  
> [MediaProxy]
> ;
> ; Section for configuring the MediaProxy server
> ;
> ; The following options are available here:
> ;
> ; start         Boolean value that specifies if to start the RTP proxy 
> server.
> ;               Default value: Yes
> ;
> ; socket        Path to the UNIX socket where MediaProxy receives commands
> ;               from the dispatcher or SER. Use the keyword None to 
> disable
> ;               listening on a local socket.
> ;               Default value: /var/run/mediaproxy.sock
> ;
> ; group         Put the socket in this group and make it group writable.
> ;               Default value: openser
> ;
> ; listen        Network address where MediaProxy receives commands from
> ;               a remote dispatcher.
> ;               Valid values for this are:
> ;
> ;                - None
> ;                    don't listen for network connections at all
> ;                - address[:port]
> ;                    listen on the specified address and port
> ;                    address can be an IP a hostname or the keyword Any
> ;                    (in which case it will listen on 0.0.0.0). If 
> address is
> ;                    a hostname, that should map in DNS to an IP address
> ;                    present on the machine, through an A record.
> ;                    If port is missing assume 25060.
> ;
> ;               Default value: None
> ;     
> ; allow         List of addresses that are allowed to connect to this
> ;               MediaProxy server and send commands.
> ;               They are specified as a comma separated list of 
> entries, with
> ;               each entry being specified in the CIDR network/mask 
> notation
> ;               (ex. 10.0.0.0/8)
> ;              
> ;               In addition simple IP addresses or hostnames are 
> allowed, in
> ;               which case the mask is considered to be 32.
> ;
> ;               In addition to network ranges/addresses 2 keywords can 
> be used
> ;               for this option:
> ;                  None   to specify that none is allowed to connect 
> (not very
> ;                         useful but this is the default for security 
> reasons)
> ;                  Any    to specify that anyone is allowed to connect
> ;                         (dangerous!)
> ;
> ;               Example: allow = 10.0.0.0/24, home-pc.mydomain.com, 
> 1.2.3.4
> ;
> ;               Default value: None
> ;              
> ; proxyIP       IP address to use to talk to the phones. If not 
> specified, the
> ;               first found will be used. However first found usually 
> means
> ;               first defined in /etc/hosts which may not be what you 
> want.
> ;               If you find that the address that's automatically 
> selected is
> ;               not the one you want, you can specify the right one 
> using this
> ;               option. The address must be one that's present on one 
> of the
> ;               host's interfaces.
> ;
> ; portRange     The range of ports to use for proxying the rtp streams.
> ;               This option is specified as minport:maxport with 
> minport and
> ;               maxport being even numbers in the range 1024-65536
> ;               Default value: 60000:65000
> ;
> ; TOS           Mark all forwarded RTP packets with this specific TOS 
> value.
> ;               Unless you know what TOS means, leave this option alone.
> ;               The TOS value can be specified either as a decimal 
> number or
> ;               as a hex number in the 0xnn format.
> ;               Default value: 0xb8
> ;
> ; idleTimeout   Expire idle sessions after this much time.
> ;               Default 60 seconds
> ;
> ; holdTimeout   Expire calls on hold after this much time.
> ;               Default value is 3600 seconds
> ;
> ; forceClose    Forcibly close a RTP session after this many seconds 
> even if
> ;               it's still active. If forceClose is 0, then a session 
> is never
> ;               closed no matter how long it lasts.
> ;               Default value: 0
> ;
> start = yes
> socket = /var/run/mediaproxy.sock
> group = openser
> listen = None
> allow = None
> proxyIP = 216.55.240.84
> portRange = 60000:65000
> TOS = 0xb8
> idleTimeout = 60
> holdTimeout = 3600
> forceClose = 0
> accounting = off
>  
> [Accounting]
> dbaccounting = off
>  
> [Database]
> user = dbuser
> password = dbpass
> host = dbhost
> database = radius
> table = radacct
>  
>  
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>   
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.394 / Virus Database: 268.9.9/382 - Release Date: 7/4/2006
>   





More information about the Users mailing list