[Users] Problem with voice

Bogdan-Andrei Iancu bogdan at voice-system.ro
Wed Feb 21 21:53:07 CET 2007


Hi Andrew,

first step will be to check on signalling level to see if SDP is 
correctly negotiated (IP and port). Than, try to get on the net to see 
if there is any RTP traffic between.

regards,
bogdan

Andrew Nowrot wrote:
> Hi
>
> I am new to all openser related things. I managed to install it, 
> combine with postgres and do simple accounting, but now I am facing a 
> slightly problem. The situation looks like this:
>
> I have two sip phones both on public IP and both registered to openser 
> (on public IP). I am able to ring between this two phones (so I guess 
> that the sip signalization works OK), but I can't hear any voice. For 
> testing purposes I disabled the firewall on openser so I am sure that 
> all ports are "free". My openser.cfg looks like this:
>
> #------------------- global configuration parameters 
> ------------------------
>
> debug=3            # debug level (cmd line: -dddddddddd)
> fork=yes           # Set to no to enter debugging mode
> log_stderror=no    # (cmd line: -E) Set to yes to enter debugging mode
>
> 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"
>
> #
> # uncomment the following lines for TLS support
> #disable_tls = 0
> #listen = tls:your_IP:5061
> #tls_verify = 1
> #tls_require_certificate = 0
> #tls_method = TLSv1
> #tls_certificate = "/build/buildd/openser- 
> 1.1.0/debian/openser/etc/openser/tls/user/user-cert.pem"
> #tls_private_key = 
> "/build/buildd/openser-1.1.0/debian/openser/etc/openser/tls/user/user-privkey.pem"
> #tls_ca_list = "/build/buildd/openser- 
> 1.1.0/debian/openser/etc/openser/tls/user/user-calist.pem"
>
> # ------------------ module loading ----------------------------------
>
> loadmodule "/usr/lib/openser/modules/postgres.so"
> loadmodule "/usr/lib/openser/modules/sl.so"
> loadmodule "/usr/lib/openser/modules/tm.so"
> loadmodule "/usr/lib/openser/modules/rr.so"
> loadmodule "/usr/lib/openser/modules/maxfwd.so"
> loadmodule "/usr/lib/openser/modules/usrloc.so"
> loadmodule "/usr/lib/openser/modules/registrar.so"
> loadmodule "/usr/lib/openser/modules/textops.so"
> loadmodule "/usr/lib/openser/modules/acc.so"
> loadmodule "/usr/lib/openser/modules/dbtext.so"
> #loadmodule "/usr/lib/openser/modules/mediaproxy.so"
> # Uncomment this if you want digest authentication
> # mysql.so must be loaded !
> loadmodule "/usr/lib/openser/modules/auth.so"
> loadmodule "/usr/lib/openser/modules/auth_db.so"
>
> # ----------------- setting module-specific parameters ---------------
>
> # -- usrloc params --
> #modparam("usrloc", "db_mode",   0)
> # Uncomment this if you want to use SQL database
> # for persistent storage and comment the previous line
> modparam("usrloc", "db_mode", 2)
>
> # -- auth params --
> # Uncomment if you are using auth module
> #
> modparam("auth_db", "calculate_ha1", no)
> #
> # If you set "calculate_ha1" parameter to yes (which true in this config),
> # uncomment also the following parameter)
> #
> #modparam("auth_db", "password_column", "password")
> modparam("auth_db", "password_column", "ha1")
>
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr", 1)
> #usrloc|auth_db|
> modparam("usrloc|auth_db", "db_url", 
> "postgres://openser:openserrw@XXX.XXX.XXX.XXX:5432/openser")
>
> modparam("acc", "db_url", 
> "postgres://openser:openserrw@XXX.XXX.XXX.XXX :5432/openser")
> #modparam("acc", "db_url", 
> "postgres://openser:openserrw@XXX.XXX.XXX.XXX:5432/openser")
> #modparam("acc", "failed_transaction_flag", 1)
> #modparam("acc", "report_cancels", 1)
> modparam("acc", "db_flag", 1)
> modparam("acc", "log_level", 1)
> #modparam("acc", "log_fmt", "mfs")
> #modparam("acc", "log_flag", 1 )
> #modparam("acc", "log_fmt", "miocfs")
>
>
>
> #modparam("acc", "db_flag", 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");
>                 exit;
>         };
>
>         if (msg:len >=  2048 ) {
>                 sl_send_reply("513", "Message too big");
>                 exit;
>         };
>
>         # 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
>         if(method=="INVITE")
>         {
>             # mark the INVITEs for accounting
>             setflag(1);
>             # enforce record-routing so the BYEs will come through 
> this server
>             record_route();
>         };
>
>         #if (!method=="REGISTER")
>         #       record_route();
>
>         # subsequent messages withing a dialog should take the
>         # path determined by record-routing
>         if (loose_route()) {
>                 # mark routing logic in request
>                 if(method=="BYE") {
>                     setflag(1);
>                 }
>                 t_relay();
>                 return;
>
>                 #append_hf("P-hint: rr-enforced\r\n");
>                 #route(1);
>         };
>
>
>         if (!uri==myself) {
>             # mark routing logic in request
>             append_hf("P-hint: outbound\r\n");
>             # if you have some interdomain connections via TLS
>             #if(uri=~"@tls_domain1.net") {
>             #   t_relay("tls:domain1.net <http://domain1.net>");
>             #   exit;
>             #} else if(uri=~"@tls_domain2.net") {
>             #   t_relay("tls:domain2.net <http://domain2.net>");
>             #   exit;
>             #}
>             route(1);
>         # 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)
>         } else {
>
>             if (method=="REGISTER") {
>
>                 #Uncomment this if you want to use digest authentication
>                 if (!www_authorize("XXX.XXX.XXX.XXX", "subscriber")) {
>                     www_challenge("XXX.XXX.XXX.XXX ", "0");
>                     exit;
>                 } else {
>                     save("location");
>                     exit;
>                 };
>             };
>
>                 #lookup("aliases");
>                 #if (!uri==myself) {
>                 #       append_hf("P-hint: outbound alias\r\n");
>                 #       route(1);
>                 #};
>
>                 # native SIP destinations are handled using our USRLOC DB
>             if (uri=~"sip:003275566*") {
>                 if (!lookup("location")) {
>                     sl_send_reply("444", "Not Found");
>                     exit;
>                 }
>                 append_hf("P-hint: usrloc applied\r\n");
>             } else {
>                 rewritehost("YYY.YYY.YYY.YYY");
>                 #t_relay();
>             };
>         };
>
>         route(1);
> }
>
>
> route[1] {
>         # send it out now; use stateful forwarding as it works reliably
>         # even for UDP2TCP
>         if (!t_relay()) {
>                 sl_reply_error();
>         };
>         #exit;
> }
>
> What could cause this silence?
> I was wondering maybe mediaproxy or rtpproxy could help, but there is 
> no nat so I can find a reason why I should use them.
>
> Could you check my conf file and point me into appropriate direction. 
> Any kind of help would be gladly expected.
>
> Best wishes to all.
>
> Andrew
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>   





More information about the Users mailing list