[Serusers] No sound with ser 0.9.0 and mediaproxy 1.2.1

Roger Lewau roger.lewau at serverhallen.com
Fri May 27 20:11:52 CEST 2005


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-clients")
modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clients")
 
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

==================================





More information about the sr-users mailing list