SV: [Serusers] No sound with ser 0.9.0 and mediaproxy 1.2.1

Roger Lewau roger.lewau at serverhallen.com
Sun May 29 21:45:09 CEST 2005


Hello Greger,

Thanks for your ideas, however all SIP messages are ok, including SDP line
as you mentioned. There is no firewall blocking UDP>1000 infront of
mediaproxy. The situation is actually that mediaproxy dont relay RTP
packets. Both clients send their packets to mediaproxy to the ports
specified in the RDP line, I can detect them with ngrep. Also there is no
error from the dispatcher since it is not used. Mediaproxy and SER sits on
the same machine... 

I tried using the dispatcher but got the same result as without it. It must
be a configuration issue with mediaproxy, because when I used the mediaproxy
sample ser.cfg it worked quite nicely. However that was on a previous
verison of SER  and mediaproxy 1.3.1. Also SIP conversation is good between
SER and clients. It seems there is a problem in the communication between
ser and mediaproxy. Mediaproxy just listen but do not send... There are
sadly enough no entries in the log that relates to this issue... 

Any more ideas? Or anybody else?

-----Ursprungligt meddelande-----
Från: Greger V. Teigre [mailto:greger at teigre.com] 
Skickat: den 29 maj 2005 09:51
Till: Roger Lewau; serusers at lists.iptel.org
Ämne: Re: [Serusers] No sound with ser 0.9.0 and mediaproxy 1.2.1

Firewall in front of mediaproxy with closed ports UDP > 1000?  DoS
protection that kicks in (lots of small UDP packets). I know Zyxel will do
that sometimes.
Could also be a problem in the setup of your clients. Do they find a common
codec?
Look in /var/log/messages for errors from proxydispatcher or mediaproxy. You
could have a problem with the communication.
Check the INVITE from ser to callee and the OK from callee to caller. Both
should have an SDP line with m= and then the IP address of your mediaproxy.
g-)

Roger Lewau wrote:
> Hello list...
>
> I've installed SER 0.9.0 and mediaproxy 1.2.1 and dowloaded the 
> getting started scripts (issue 04a) from onsip.org.
> Setup everything as instructed, added a couple of users to the 
> database and tried to setup a call between one public and one NATed 
> UA.
> Both phones register properly and signalling seems to be working fine, 
> I ring each device from the other, problem is there is no sound.
>
> So I checked the mediaproxy sessions... and it looks like this
>
>
> Caller                Via                    Called
> Status Duration  Codec    Type   Traffic
> ----------------------------------------------------------------------
> ------
> ----------------------------------
> 82.182.194.x:5004 - 212.247.91.x:35014 - 82.182.194.x:49160  inactive 
> 0'07"  Unknown  Audio  0/0/0
>
> Total traffic:  0bps/0bps/0bps (in1/in2/out) Session count:  1
>
> I dont really understand the output but I think "inactive" as well as 
> "Unknown Audio" is not a good sign.
>
> How ever, I then used Ngrep to see if there are some rtp traffic going 
> on and sure enough, there is traffic comming in from both UAs but no 
> traffic is leaving the proxy. Strange!
>
> Anyone with some bright idea on why mediaproxy is not relaying the 
> sound?
>
> My ser.cfg
> ===================================
>
> debug=3
> fork=yes
> log_stderror=no
>
> listen=212.247.91.<hidden>   # INSERT YOUR IP ADDRESS HERE
> port=5060
> children=4
> alias=sip.<somedomain>.com
> dns=no
> rev_dns=no
>
> fifo="/tmp/ser_fifo"
> fifo_db_url="mysql://ser:heslo@localhost/ser"
>
> loadmodule "/usr/local/lib/ser/modules/mysql.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"
> loadmodule "/usr/local/lib/ser/modules/auth.so"
> loadmodule "/usr/local/lib/ser/modules/auth_db.so"
> loadmodule "/usr/local/lib/ser/modules/uri.so"
> loadmodule "/usr/local/lib/ser/modules/uri_db.so"
> loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
> loadmodule "/usr/local/lib/ser/modules/nathelper.so"
> loadmodule "/usr/local/lib/ser/modules/textops.so"
> loadmodule "/usr/local/lib/ser/modules/avpops.so"
> loadmodule "/usr/local/lib/ser/modules/domain.so"
> loadmodule "/usr/local/lib/ser/modules/permissions.so"
>
> modparam("auth_db|permissions|uri_db|usrloc", "db_url",
> "mysql://ser:heslo@localhost/ser")
> modparam("auth_db", "calculate_ha1", 1) modparam("auth_db", 
> "password_column", "password")
>
> #modparam("nathelper", "rtpproxy_disable", 1) #modparam("nathelper", 
> "natping_interval", 0)
>
> modparam("mediaproxy","natping_interval", 30) 
> modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
> modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/ser/sip-client
> s")
> modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-client
> s")
>
> modparam("usrloc", "db_mode", 2)
>
> modparam("registrar", "nat_flag", 6)
>
> modparam("rr", "enable_full_lr", 1)
>
> modparam("tm", "fr_inv_timer", 27)
> modparam("tm", "fr_inv_timer_avp", "inv_timeout")
>
> modparam("permissions", "db_mode", 1)
> modparam("permissions", "trusted_table", "trusted")
>
> route {
> # -----------------------------------------------------------------
> # Sanity Check Section
> # -----------------------------------------------------------------
> if (!mf_process_maxfwd_header("10")) {  sl_send_reply("483", "Too Many 
> Hops");  break; };
>
> if (msg:len > max_len) {
>  sl_send_reply("513", "Message Overflow");  break; };
>
> # -----------------------------------------------------------------
> # Record Route Section
> # -----------------------------------------------------------------
> if (method=="INVITE" && client_nat_test("3")) {  # INSERT YOUR IP 
> ADDRESS HERE  record_route_preset("212.247.91.<hidden>:5060;nat=yes");
> } else if (method!="REGISTER") {
>  record_route();
> };
>
> # -----------------------------------------------------------------
> # Call Tear Down Section
> # -----------------------------------------------------------------
> if (method=="BYE" || method=="CANCEL") {  end_media_session(); };
>
> # -----------------------------------------------------------------
> # Loose Route Section
> # -----------------------------------------------------------------
> if (loose_route()) {
>
>  if (has_totag() && (method=="INVITE" || method=="ACK")) {
>
>   if (client_nat_test("3")||search("^Route:.*;nat=yes")){
>    setflag(6);
>    use_media_proxy();
>   };
>  };
>
>  route(1);
>  break;
> };
>
> # -----------------------------------------------------------------
> # Call Type Processing Section
> # -----------------------------------------------------------------
>
> if (uri!=myself) {
>  route(1);
>  break;
> };
>
> if (uri==myself) {
>  if (method=="ACK") {
>   route(6);
>   break;
>  } else if (method=="CANCEL") {
>   route(3);
>   break;
>  } else if (method=="INVITE") {
>   route(3);
>   break;
>  } else if (method=="REGISTER") {
>   route(2);
>   break;
>  };
>
>  lookup("aliases");
>  if (uri!=myself) {
>   route(1);
>   break;
>  };
>
>  if (!lookup("location")) {
>   sl_send_reply("404", "User Not Found");
>   break;
>  };
> };
> log("NO MATCH");
> route(1);
> }
>
> route[1] {
>
> # -----------------------------------------------------------------
> # Default Message Handler
> # -----------------------------------------------------------------
>
> t_on_reply("1");
>
> if (!t_relay()) {
>
>  if (method=="INVITE" || method=="ACK") {
>   end_media_session();
>  };
>
>  sl_reply_error();
> };
> }
>
> route[2] {
>
> # -----------------------------------------------------------------
> # REGISTER Message Handler
> # -----------------------------------------------------------------
>
> sl_send_reply("100", "Trying");
>
> if (!search("^Contact:\ +\*") && client_nat_test("7")) {  setflag(6);  
> fix_nated_register();  force_rport(); };
>
> if (!www_authorize("","subscriber")) {  www_challenge("","0");  break; 
> };
>
> if (!check_to()) {
>  sl_send_reply("401", "Unauthorized");  break; };
>
> consume_credentials();
>
> if (!save("location")) {
>  sl_reply_error();
> };
> }
>
> route[3] {
>
> # -----------------------------------------------------------------
> # CANCEL and INVITE Message Handler
> # -----------------------------------------------------------------
>
> if (client_nat_test("3")) {
>  setflag(7);
>  force_rport();
>  fix_nated_contact();
> };
>
> if (method=="INVITE" && !allow_trusted()) {
>
>  if (!proxy_authorize("","subscriber")) {
>   proxy_challenge("","0");
>   break;
>  } else if (!check_from()) {
>   sl_send_reply("403", "Use From=ID");
>   break;
>  };
>
>  consume_credentials();
> };
>
> lookup("aliases");
> if (uri!=myself) {
>  route(1);
>  break;
> };
>
> if (uri=~"^sip:[+|00][0-9]*@") { # International PSTN inleds antingen 
> med + eller 00  route(4);  break; };
>
> if (!lookup("location")) {
>
>  if (uri=~"^sip:0[1-9]*@") { # Domestic PSTN startar med 0
>   route(4);
>   break;
>  };
>
>  sl_send_reply("404", "User Not Found");  break; };
>
> if (method=="CANCEL") {
>  route(1);
>  break;
> };
>
> route(5);
> route(1);
> }
>
> route[4] {
>
> # -----------------------------------------------------------------
> # PSTN Handler
> # -----------------------------------------------------------------
>
> rewritehost("192.0.2.245"); # INSERT YOUR PSTN GATEWAY IP ADDRESS
>
> avp_write("i:45", "inv_timeout");
>
> route(5);
> route(1);
> }
>
> route[5] {
>
> # -----------------------------------------------------------------
> # RTP Proxy Enabler
> # -----------------------------------------------------------------
>
> if (isflagset(6) || isflagset(7)) {
>  use_media_proxy();
> };
> }
>
> route[6] {
>
> #
> ----------------------------------------------------------------------
> --
> # ACK Handler #
> ----------------------------------------------------------------------
> --
>
> #
> ----------------------------------------------------------------------
> --
> # Aliases Section #
> ----------------------------------------------------------------------
> --
> lookup("aliases");
> if (uri!=myself) {
>  route(1);
>  break;
> };
>
> lookup("location");
>
> route(1);
> }
>
>
> onreply_route[1] {
>
> if ((isflagset(6) || isflagset(7)) &&
>     (status=~"(180)|(183)|2[0-9][0-9]")) {
>
>  if (!search("^Content-Length:\ +0")) {
>   use_media_proxy();
>  };
> };
>
> if (client_nat_test("1")) {
>  fix_nated_contact();
> };
> }
>
> ==================================
>
> My mediaproxy.ini
> ==================================
> ;
> ; Configuration file for MediaProxy
> ;
>
> [Dispatcher]
>
> [MediaProxy]
> start = yes
> socket = /var/run/mediaproxy.sock
> group = ser
> ;listen = None
> allow = Any
> proxyIP = 212.247.91.<hidden>
> portRange = 35000:65000
> TOS = 0xb8
> idleTimeout = 60
> holdTimeout = 3600
> ;forceClose = 0
> accounting = off
>
> [Accounting]
> user = dbuser
> password = dbpass
> host = dbhost
> database = radius
> table = radacct
>
> ==================================
>
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers






More information about the sr-users mailing list