% Documento sobre Aplicaciones básicas e introductorias
% Para Asterisk PBX, Asterisk es un trademark de Digium.
% Autor: René Mayorga
% Copyright (C) 2008, René Mayorga <rmayorga@debian.org.sv>
% Este documento es libre de modificación, distribución mejoras
% Y redistribución, aplicando los terminos de la Licencia
% Creative Commons Share-Alike 3.0 o superior.

\documentclass[11pt]{report}
\usepackage[spanish]{babel}
\usepackage{graphicx}
%\vspace*{9pt}

\parskip 8.9pt
\author{Comunidad de usuarios Debian de El Salvador \\ Ren\'e Mayorga $<rmayorga@debian.org.sv>$}
\title{Voz sobre IP con GNU/Linux y Asterisk PBX}
\begin{document}
\maketitle
\tableofcontents


\section{¿Qu\'e es una PBX?}
	\emph{PBX} o \emph{Private Virtual eXchange} es un sistema de comounicaci\'on
	destinado para empresas.


	Las \emph{PBX} distribuyen una o varias lineas telef\'onicas entre un
	numero de extensiones privadas, estas extensiones se comunican entre
	ellas sin necesidad de depender del proveedor telef\'onico y comunican
	a sus usuarios al exterior por medio de las lineas telef\'onicas
	\emph{troncales}\footnote{en la actualidad la mayor\'ia de opciones
	de comunicaci\'on en las \emph{PBX} se usan medio digitales como E1s
	o T1s, de los mismos se hablara en el siguiente capitulo}.


	Aparte, las \emph{PBX} ofrecen a sus usuarios o \emph{abonados} beneficios
	extra, como llamadas en espera, conferencias tripartitas, buzones de voz,
	call hounting, y call pickup\footnote{muchas de estas opciones solo son
	posibles usando medios digitales como E1s, y no tecnolog\'ias analogas
	como las antiguas \emph{troncales}}.


	Entonces, Los servicios de \emph{PBX} ahorran el coste local de una llamada
	entre un escritorio y otro, y benefician llevando a la adquisici\'on 
	de menos lineas externas, a la vez que centralizan el flujo y el control
	de llamadas en una oficina, permitiendo tener restricciones y beneficios
	extras a los usuarios internos y tambi\'en delegando parte de la
	administraci\'on, control de gastos y restricciones a la empresa
	due\~na de la \emph{PBX}, separando entonces este trabajo del proveedor
	de servicios telef\'onicos.


	
\section{Telefon\'ia}
	Una linea de telef\'ono, es, b\'asicamente una señal el\'ectrica entregada
	desde una central telef\'onica, hasta un \emph{abonado}\footnote{En telecomunicaciones 
	se conoce como \emph{abonado} a un usuario de los servicios provistos
	por la empresa proveedora del servicio}.


	Por lo general, estas se\~nales o pulsos, requieren cierto ancho de banda para
	funcionar, en el caso, un par de cobre tradicional que provee una linea
	entre la central y el \emph{abonado} utiliza un ancho de banda\footnote{unidad 
	de medida para indicar velocidad de transmisi\'on, la medida b\'asica es el bit
	por segundo, o \emph{bps} (\emph{bit per second}), en esta medida aplican los
	factores de conversi\'on del S.I.(Sistema Internacional), ejemplo: kilo-bits-per-second}
	por lo general el ancho de banda necesitado para una linea telef\'onica es:
	\emph{64kbps}.- Esta linea de \emph{64kbps} usada para la transmisi\'on de voz
	es conocida como \emph{DS0}. 

		\subsection{E1s, T1s}
			\subsubsection{E1}
				Un E1, es un canal digital de transmisi\'on usado en telecomunicaciones
				este canal puede ser transferido por diferentes medios, desde
				cobre, fibra \'optica, microondas y otras.


				Este medio contiene \emph{31} canales digitales, o \emph{DS0}s 
				es dec\'ir, reservando un canal para la se\~nalizaci\'on de los datos
				dejando disponibles \emph{30} canales para el uso de datos o voz
				es decir, 30 llamadas simultaneas o 1920kbps.


				E1 es un standard Europeo, usado por tanto, mayormente
				entre comunicaciones de centrales y PBXs Europeas.
			
			\subsubsection{T1}
				T1 es un standard Norteamericano, en el cual la única diferencia
				tangible y notable con su contra-parte europea es la cantidad 
				de canales, ya que un T1 solo contiene 28 \emph{DS0}s

		\subsection{se\~nalizaci\'on}
			Independientemente el medio a usar, es necesario contar con un protocolo de
			se\~nalizaci\'on.


			La se\~nalizaci\'on, es la encargada de la \emph{capa 2}\footnote{similar
			a las capas existentes en el Modelo de red OSI, existen en telecomunicaciones; su
			predecesor, capas de comunicaci\'on diferentes que manejan entonces, diferentes
			etapas de la transmisi\'on de datos y/o voz de un punto A a un punto B} que se
			encarga de manejar la forma l\'ogica como el protocolo transportara las llamadas.


			Estos protocolos de se\~nalizaci\'on se usan entonces como manera de comunicaci\'on
			entre centrales de proveedores y tambi\'en  entre la comunicaci\'on de la central
			con las PBXs que se conectan por medio de medios digitales como E1s o T1s.


			Debido a que este es un tema extenso y que el fin del documento no es explicar
			la forma de comunicaci\'on en telecomunicaciones solo mencionaremos entonces
			los protocolos de com\'un uso, entre ellos:
				\begin{itemize}
					\item ISDN
					\item SS7
					\item R2
				\end{itemize}

\section{Convergencia de datos y voz}
	En un principio, las empresas de telecomunicaciones, y las empresas que usan
	PBX necesitaban una red propia de telefon\'ia como parte importante de su
	operaci\'ion, con la evoluci\'on de las redes y la computaci\'on, se volvio
	necesario tambi\'en  la creaci\'on de redes de computadoras; estas pronto
	llegar\'ian a la evoluci\'on de internet.


	Pero la necesidad de mantener separadas las redes de telefon\'ia y las
	redes de computaci\'on se mantuvier\'on, hasta el momento de evolucionar
	en protocolos que pudieran aprovechar una sola red para transmitir 
	datos y voz, ahorrando entonces infraestructura f\'isica y recursos.


	Esta convergencia de datos se da gracias a la creaci\'on de protocolos
	que posibiliten la transmisi\'on de voz en capas superiores al protocolo
	standard de capa 3 del modelo OSI\footnote{El modelo de transmisi\'on de datos
	OSI se divide en diferentes capas que permiten la estandarizaci\'on  
	en la trasmisi\'on de datos, es decir, sobre cada capa act\'ua un protocolo
	que puede dar nivel de abstracci\'on  para con las capas superiores
	facilitando entonces una forma de creas aplicaciones que pueden convivir
	en diferentes etapas de la red sin preocuparse de la necesidad de manejar
	la manera b\'asica  de comunicaci\'on}, siendo el mas usado el protocolo
	\emph{IP}\footnote{IP es el protocolo mas usado para la transmisi\'on 
	de datos en la capa 3, conocido como \emph{Internet Protocol} es actualmente
	el motor de internet y de las redes de computadoras modernas}.


	Esta posibilidad de converger datos y voz, lleva entonces a una nueva forma
	de poder establecer comunicaciones de bajo costo entre puntos distantes
	ya que se puede aprovechar la infraestructura actualmente existente, como 
	internet, para poder establecer llamadas de voz entre el punto A y punto B.

	\subsubsection{Protocolos para Voz sobre IP}
		\begin{itemize}
			\item{H323}
			\item{SIP}
		\begin{description}
			\item[H.323]
				Este fue el primer intento de llevar la comunicaci\'on multimedia
				a una Red de \'Area lo \emph{LAN}, este protocolo fue implementado
				en algunos software que permit\'ian video llamada, usando
				por primera vez la infraestructura \emph{IP} para transferir en
				tiempo real voz y v\'ideo.

			\item[SIP]
				Por sus siglas en ingles \emph{Session Initiation Protocol}
				es un protocolo realmente simple, dise\~nado para la se\~nalizaci\'on
				del trafico multimedia y delegar todo el peso de los \emph{features}
				a los puntos terminales. 

				\emph{SIP} Comparte caracter\'isticas con HTTP\footnote{Protocolo
				usado para la transferencia de HiperTexto, la base fundamental de
				cualquier servicio web} haciendo entonces al protocolo f\'acil de 
				entender para cualquier sysadmin\footnote{Palabra en ingles utilizada
				para describir el trabajo de Administrador de sistemas, es decir; la
				persona encargada de administrar servidores y la red de una empresa}.

				Otra de las ventajas de \emph{SIP}, es la capacidad de trabajar de manera
				\emph{stateless}\footnote{Es decir que no requiera la interacci\'on directa
				del servidor para mantener una llamada activa, delegando entonces el trafico
				de voz a ser de punto a punto o \emph{p2p}} o statefull\footnote{Es decir
				que el servidor esta presente durante toda la llamada, este estado nos es \'util
				cuando es necesario tener una grabaci\'on de las llamadas por ejemplo}.
		\end{description}
		\end{itemize}

	En la figura 1.0 se muestra la cl\'asica aplicaci\'on de un entorno de Voz Sobre IP
	\begin{figure}
	\centering
	\includegraphics[width=6in]{voip-basico.eps}
	\caption{Uso m\'as com\'un de VoIP}
	\label{fig: 1.0}
	\end{figure}
	
	\subsection{Entendiendo mejor SIP}
		Como se hablaba en el capitulo anterior \emph{SIP} cuenta con varias cualidades importantes
		en este documento se desarrollara \emph{VoIP} con SIP, por lo que sera necesario entrar en 
		mas detalle.

		\emph{SIP} o \emph{Session Initiation Protocol} fue desarrollado por la IETF
		con el fin especifico, como su nombre lo explica; convertirse en un standard para
		la inicializaci\'on  de sesiones.

		Por tanto \emph{SIP} no es un protocolo creado directamente para Voz sobre IP
		sino que, m\'as bien sus fines son abarcar varias ramas de la comunicaci\'on 
		como lo son la mensajer\'ia instant\'anea o \emph{IM}\footnote{Ejemplos: MSN Messenger
		Yahoo Messenger, Gtalk, etc}, juegos, videollamadas, etc.

		La principal fortaleza de \emph{SIP} Radica en su versatilidad y su sencillez, pero
		su uso actual mas conocido es la se\~nalizaci\'on de llamadas de VoIP.

		\emph{SIP} es un protocolo \emph{Peer to Peer}, es decir, en un momento determinado
		cualquier parte involucrada en la comunicaci\'on  puede ser tanto servidor como 
		cliente y comunicarse entonces entre ellas como pares.

		\emph{SIP} Maneja URIs\footnote{Universal Resource Identifier}, de la misma forma
		que otros protocolos, ejemplo: ftp://usuario@servidor.com, usuario@dominio.com.
		Un URI en SIP se ve de la siguiente forma: SIP:TELEFONO@SERVIDOR.org.

		En La figura 2.0 se muestra un flujo de llamada entre dos dispositivos usando \emph{SIP}
		\begin{figure}
		\centering
		\includegraphics[width=6in]{callflow-sip.eps}
		\caption{Flujo de Llamada en un SIP Proxy statefull}
		\label{fig: 2.0}
		\end{figure}

	\subsection{RTP y Codecs}
		El trafico de audio en una llamada VoIP usando \emph{SIP} se requiere el uso de otro Protocolo
		para transportar el audio desde el abonado A al abonado B, el protocolo mas usado
		es \emph{RTP} ó emph{Real Time Protocolo}\footnote{Este protocolo tambien es usado para
		la trasmisi\'on de streeming en internet, ejemplo: Radios, Videos, etc}; o en castellano
		Protocolo de Tiempo Real.

		Para la transmisi\'on  de audio se utilizan a su vez codecs; estos pueden comprimir el audio
		para que el uso del recurso de ancho de banda en una llamada sea m\'inimo y eficiente
		o que requiera mayor ancho de banda pero con mejor calidad de sonido.

		Los codecs mas usados son:
		\begin{itemize}
		
		\item[g711]:  Este codec es el de mayor calidad pero a la vez el de mayor consumo de ancho de
		banda, se presenta en dos variantes Ulaw y Alaw, cada una respectivamente utilizada como
		estandard en Europa y America; este codec utiliza un total, de 64kbps de ancho de banda
		en teor\'ia este ancho de banda es el mismo usado por una linea de telef\'onica convencional.

		\item[gsm]: Este codec utiliza un promedio de 13.3kbps de ancho de banda por lo tanto
		utiliza compresi\'on para mejorar el desempe\~no del ancho de banda, pero sacrifica
		la calidad de la voz.

		\item[g729]: Este codec privativo utiliza 8kbps, y a pesar de usar compresi\'on de audio
		es el que presenta mejor calidad en la voz.
		Una desventaja clara es que este codec es privativo y se requiere de un pago de royalties
		para su uso.
	
		\end{itemize}

	\subsection{Asterisk PBX}
		Asterisk es un producto de software libre desarrollado por Digium\footnote{Empresa norteamericana
		que tambi\'en se dedica a la producci\'on de hardware para PSTN compatible con GNU/Linux}

		Asterisk PBX soporta una gran variedad de protocolos como: \emph{SIP, IAX, H.323, MGCP} entre otros
		a su vez, incluye muchas aplicaciones creadas para proveer de una soluci\'on de PBX completa
		proveyendo una interfaz para trabajar con hardware especial para conectar lineas telef\'onicas
		y/o Medios digitales como E1s que pueden usarse para conectar directamente a la red publica
		de telef\'onia \'o \emph{PSTN}.

		Por su verstilidad Asterisk alcanzo ya una gran popularidad como una soluci\'on integral
		para integrar centrales telef\'onicas convencionales o IP, para manejar y gestionar
		centros de llamadas o callcenters y como gateway o \emph{add-on} a servicios telef\'onicos
		existentes.

		Asterisk puede funcionar en casi cualquier sistema operativo y sobre hardware modesto;
		puede funcionar como un SIP proxy stateless o statefull y puede proveer una gran herramienta
		para generar servicios interactivos que conecten a bases de datos y devulvan infomaci\'on 
		al usuario por medio de IVRs.

\newpage
Cubriendo entonces la introducci\'on b\'asica a telefon\'ia y Voz Sobre IP, se espera que este documento crezca
puedes encontrar versiones nuevas del documento en http://rmayorga.org/talks/.

Si deseas colaborar puedes descargar las fuentes completas del documento y enviar parches a $rmayorga@debian.org.sv$
El documento se encuentra bajo licencia libre, por lo que su modificaci\'on mejoras y redistribuci\'on esta permitida
y exhortada.
\end{document}
