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…