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.
Saludos Fer
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...
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@aliax.net:
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@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
El Wednesday 07 May 2008 16:02:09 Fernando Yubero escribió:
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
Hola, no entiendo la pregunta. ¿Te refieres a cómo decirle a SEMS que reproduzca un wav u otro? Si es así, el nombre del WAV que se reproduce es el username del RURI que le llega a SEMS.
sr-users-es@lists.kamailio.org