I finally fixed this issue. It was a firewall issue after all. I made an
error opening TCP ports above >1000 instead of UDP. After correcting pf.conf
and reloading pf, life is much happier.
Thanks for your help.
Kind regards
Roger
-----Ursprungligt meddelande-----
Från: Greger V. Teigre [mailto:greger@teigre.com]
Skickat: den 29 maj 2005 22:14
Till: Roger Lewau; serusers(a)lists.iptel.org
Ämne: Re: [Serusers] No sound with ser 0.9.0 and mediaproxy 1.2.1
If you had it working with mediaproxy 1.3.1, try upgrading it again. Also,
there is a debug option for mediaproxy so you can see what happens, but I
don't recall what it is now.
g-)
Roger Lewau wrote:
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@teigre.com]
Skickat: den 29 maj 2005 09:51
Till: Roger Lewau; serusers(a)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-clien
> t
> s")
>
modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clien
> t
> 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(a)lists.iptel.org
>
http://lists.iptel.org/mailman/listinfo/serusers