Estimado Iñaki:
Gracias por aportarme con este ejemplo de configuracion estoy por
hechar manos a la obra y probar estas configuracion, seguramente me
has salvado de mucho tiempo de prueba y error. Ahora la unica duda que
me queda y perdon si te incomodo o a los mienbros de la lista, por que
creo que tiene que ver mas con la configuracion del SEMS que con la
del Openser, es como distingo que locacion (mensaje wav) tocar con
respecto al mensaje que obtengo de desconexion, esto es 404 o 480, ya
que deseo brindar distintos mensajes, en el caso de 404 yo creo no voy
a tener el problema de que el carrier brinde tambien su locucion, por
que lo estoy usando en un esquema de interconexion con otro operador
en el cual no se colocan las locuciones en la red local, la
interconexion se realiza en TDM mediante un GW.
Saludos
Fernando
2008/5/5 Iñaki Baz Castillo <ibc(a)aliax.net>et>:
El Lunes, 5 de Mayo de 2008, Fernando Yubero
escribió:
Que tal participantes de la lista, creo nunca
hasta ahora haber
escrito un mensaje, aunque hace varios meses que leo y aprendo de los
comentarios de ustedes.
Les pido ayuda sobre la configuracion a utilizar en un openser y en un
sems para proveer de mensajes de red a los clientes de openser, por
ejemplo en el caso de un numero invalido, o sea un mensaje 404 que por
medio de early media le pueda dar una locucion al cliente explicando
que el numero que se a ingresa no corresponde a un abonado valido.
Creo haber leido que tenian implementaciones funcionando, Iñaki??? por
que tuvo que traducir la causa de desconexion para no obtener doble
locucion, o sea en el tramo de sip de la llamada y desde la PSTN
nuevamente.
Desde ya muy agradecido.
Yo instalé SEMS usando su nuevo SIP stack en vez de usarlo amarrado a
un SER/OpenSer por unixsockets.
Por una parte prepara el SEMS para que disponga de la aplicación de ejemplo
"early-announce" y funcione con su nuevo SIP stack. Algunos parámetros del
sems.conf:
# Que reciba las indicaciones vía headers.
application=$(apphdr)
# Que cargue su SIP stack y la aplicación.
load_plugins=sipctrl;early_announce;announcement;wav;gsm;
Luego en OpenSer:
------------------------------------------------------
route[ROUTE_TO_MEDIA_SERVER] {
t_on_reply("ON_REPLY_TO_MEDIA_SERVER");
t_on_failure("ON_FAILURE_TO_MEDIA_SERVER");
if ($rU == "user_not_available") {
append_hf("P-App-Name: early_announce\r\n");
# El usuario existe pero no puede recibir llamadas (!= 404).
append_hf("P-App-Param:
Final-Reply-Code=480;Final-Reply-Reason=Number Not Available Now\r\n");
}
else if ($rU == "user_busy") {
append_hf("P-App-Name: early_announce\r\n");
append_hf("P-App-Param: Final-Reply-Code=486;Final-Reply-Reason=Busy
Here\r\n");
}
else if ($rU == "number_doesnt_exist") {
append_hf("P-App-Name: early_announce\r\n");
# Ojo, i respondes 404 el operador/carrier responderá el ISUP análogo y
el operador llamante generará también su early-media.
# Por ello, o respondemos algo != 404 o convencemos a nuestro carrier
para que mapee el 404 a otro código ISUP.
append_hf("P-App-Param:
Final-Reply-Code=404;Final-Reply-Reason=Number Doesn't Exist\r\n");
}
else if ($rU == "destination_not_allowed") {
append_hf("P-App-Name: early_announce\r\n");
append_hf("P-App-Param:
Final-Reply-Code=403;Final-Reply-Reason=Destination Not Allowed\r\n");
}
rewritehostport("MEDIA_SERVER_IP:MEDIA_SERVER_PORT");
t_realy();
------------------------------------------------------
Y luego durante el script si por ejemplo nos llaman desde la PSTN a un número
que no existe:
$rU = "number_doesnt_exist";
route(ROUTE_TO_MEDIA_SERVER);
Si llaman a un número nuestro que sí existe pero cuyo usuario SIP no está registrado:
$rU = "user_not_available";
route(ROUTE_TO_MEDIA_SERVER);
Si un usuario nuestro llama a un número internacional no permitido:
$rU = "destination_not_allowed";
route(ROUTE_TO_MEDIA_SERVER);
Lo mismo si nos llaman y el usuario devuelve busy, etc etc etc...
--
Iñaki Baz Castillo
_______________________________________________
Users-es mailing list
Users-es(a)lists.openser.org
http://lists.openser.org/cgi-bin/mailman/listinfo/users-es