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
==================================
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-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
==================================
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
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@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@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers