Hola como estan. Acabo de inscribirme, soy nueva en la lista. tengo muchas dudas con respecto a openser, espero me ayuden, Antes comentare del trabajo que estoy encaminando.
Estoy trabajando en un proyecto para implementar Telefonia IP para una empresa, que me permita hacer llamadas dentro de la empresa(red local) y desde internet.
La red de esta empresa cuenta con 35 VLANs, un firewall que controla las conexiones salientes y entrantes de las VLANs (permisos) hacia el Internet,
teniendo algunas referencias de la plataforma a utilizar para este proyecto hemos elegido Linux por cierto Debian y Openser version 1.2. luego de leer la documentacion de openser comence a instalar y probar. la Autenticacion me funciona, las llamadas de igual manera pero solo en una VLAN, estoy utilizando el X-Lite. cuando hago la autenticacion de una VLAN diferente los mensajes de señalizacion no llegan a mi servidor, de igual manera desde el internet, en mi servidor estoy monitorizando con NGREP los mensajes SIP, mi servidor cuenta con una IP publica y tambien esta instalado el rtpproxy para cuestiones de NAT, En el firewall me han dado todos los permisos, estan habilitados todos los protocolos y sus puertos(principalmente TCP y UDP), permite conexiones entrantes y salientes desde el internet a las VLANs y viciversa.
lo primero que puse a correr es el RTPProxy(la que utilizo es rtpproxy-cvs-latest.tgz)
rtpproxy -l 200.58.82.46 -s udp:127.0.0.1:7890 -F
luego Openser.
cuando hago llamadas en el mismo VLANs como mencione anteriormente me funcionan correctamente pero de una VLAN diferente no, tampoco de internet. la configuracion de mi openser.cfg es la siguiente
# # sample config file to be used with nathelper/rtpproxy #
# ----------- global configuration parameters ------------------------
debug=7 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=yes # (cmd line: -E) listen=200.58.82.46
/* Uncomment these lines to enter debugging mode fork=no log_stderror=yes */
check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) port=5060 children=4
# --- module loading
mpath="//lib/openser/modules/"
loadmodule "mysql.so" loadmodule "sl.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "maxfwd.so" loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "textops.so" loadmodule "nathelper.so" loadmodule "auth.so" loadmodule "auth_db.so" loadmodule "mi_fifo.so" loadmodule "xlog.so"
# --- setting module parameters
# -- mi_fifo params -- modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
modparam("usrloc|auth_db","db_url","mysql://openser:openserrw@localhost/openser")
# -- usrloc params -- modparam("usrloc", "db_mode", 2) modparam("usrloc", "nat_bflag", 6)
# -- registrar params -- modparam("registrar|nathelper", "received_avp", "$avp(i:42)")
# -- auth params -- #modparam("auth_db", "calculate_ha1", no) #modparam("auth_db", "password_column", "ha1") #modparam("auth_db", "password_column_2", "ha1b")
modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password")
# -- rr params -- modparam("rr", "enable_full_lr", 1)
# -- nathelper params ---
modparam("nathelper", "rtpproxy_sock", "udp:127.0.0.1:7890") modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", 7) modparam("nathelper", "sipping_from", "sip:200.58.82.46")
# --- main routing logic route{
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; };
# NAT detection route(2);
if (!method=="REGISTER") record_route();
if (loose_route()) { append_hf("P-hint: rr-enforced\r\n"); route(1); };
if (!uri==myself) { append_hf("P-hint: outbound\r\n"); route(1); };
if (uri==myself) { if (method=="REGISTER") { if (!www_authorize("", "subscriber")) { www_challenge("", "0"); exit; }; if (isflagset(5)) { # set branch flag -- when someone will call this user # the INVITE will have branch flag 6 set after lookup("location") setbflag(6); # if you want OPTIONS natpings uncomment next # setbflag(7); }; save("location"); exit; };
if (!lookup("location")) { sl_send_reply("404", "Not Found"); exit; }; append_hf("P-hint: usrloc applied\r\n"); };
route(1); }
route[1] { if (subst_uri('/(sip:.*);nat=yes/\1/')){ setbflag(6); };
if (isflagset(5)||isbflagset(6)) { route(3); }
if (!t_relay()) { sl_reply_error(); }; exit; }
route[2]{ force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); }; setflag(5); }; }
route[3] { if (is_method("BYE|CANCEL")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); t_on_failure("2"); }; if (isflagset(5)) search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes'); t_on_reply("1"); }
failure_route[2] { if (isbflagset(6) || isflagset(5)) { unforce_rtp_proxy(); } }
onreply_route[1] { if ((isflagset(5) || isbflagset(6)) && status=~"(183)|(2[0-9][0-9])") { force_rtp_proxy(); } search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');
if (isbflagset(6)) { fix_nated_contact(); } exit; }
Derrepente me falte dar algun permiso en mi Servidor? o esta mal mi configuracion de openser.cfg. espero podeis ayudar.
Saludos
Mariam
_________________________________________________________________ Explore the seven wonders of the world http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=...