[OpenSER-Users-ES] Busco ejemplo de conf de openser+sems

Iñaki Baz Castillo ibc at aliax.net
Mon May 5 23:59:01 CEST 2008


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




More information about the Users-es mailing list