Asterisk y el protocolo SIP

Hola a todos. Soy Benoît, desarrollador de aplicaciones en NetDevices. Estoy especializado en el desarrollo de aplicaciones. Hoy voy a presentarles el principio deAsterisk y el protocolo SIP.

¿Qué es Asterisk?

asterisk y el protocolo sip

Asterisco es un centralita privada (PABX) en Linux. El principio de la central telefónica es que permite una gestión completa de las comunicaciones internas y externas de un grupo de estaciones. Por ejemplo, dentro de un grupo asegurador, una empresa o un hospital.  

Asterisk tiene un gran número de funcionalidades que le permiten satisfacer la gran mayoría de las necesidades de telefonía. Por ejemplo, permite las llamadas directas (como una línea telefónica tradicional), pero también el buzón de voz, las colas de llamadas, las conferencias de llamadas, la redirección de llamadas al servicio correspondiente según la elección del cliente (call center)...

Estas características se complementarán con protocolos para mejorar el teléfono y el móvilUX .

Un posible protocolo: SIP.

¿Qué es el SIP?

SIP (Sesión de inicio de protocolo) es un protocolo para establecer llamadas multimedia (audio, vídeo, mensajes). Estas llamadas pueden iniciarse en modo audio, por ejemplo, y luego pasar a modo vídeo sin cortar la llamada. Otro ejemplo: en caso de pérdida de conexión o de velocidad, se producirá una renegociación de la llamada que permitirá que siga en curso, aunque reduciendo la calidad de la misma.

Esto será posible gracias al códec.

¿Qué es el códec?

El Códec ("codificación-decodificación") es un dispositivo capaz de comprimir y/o descomprimir una señal digital. Cada códec puede tener varios modos de funcionamiento que modifican su rendimiento. La elección del códec a utilizar se hace teniendo en cuenta la posibilidad de utilizarlo de extremo a extremo (durante una llamada VOIP, ambos terminales deben poder codificar, pero también decodificar la señal, y por tanto tener el códec instalado) pero también la calidad de la red. Cuando la calidad de la red no sea suficiente, se elegirá un códec con una alta tasa de compresión (y, por tanto, una pérdida de calidad). Por otro lado, se utilizarán códecs de mejor calidad con conexiones de buena calidad.

Algunos ejemplos de códecs

El códec más conocido en audio es: El MP3

Sin embargo, al realizar llamadas de audio/vídeo los códecs más utilizados son:

  • G711 G723 G726 G729 GSM iLBC para el audio (el GSM que se utiliza para las llamadas en las redes móviles)
  • H.261 H.263/ H.263+ / H.263++ MPEG-4 H.264 para el vídeo

Hay, por supuesto, muchas otras, algunas gratuitas y otras propietarias.

Proyecto realizado en NetDevices

En NetDevices, hemos utilizado estas tecnologías para uno de nuestros clientes. Nuestro cliente (VideoDesk) es una start-up que permite a los sitios de comercio electrónico integrar una interfaz de chat (texto, audio o vídeo) entre clientes y vendedores. VideoDesk ya ofrecía sus servicios de integración de sitios web y se puso en contacto con nosotros para crear un SDK para integrar su servicio en las aplicaciones móviles. El SDK fue desarrollado para su integración en iOS y Android. Para llevar a cabo las distintas pruebas, creamos un servidor SIP dentro de nuestra empresa para tener el control de los intercambios de extremo a extremo.

[wpforms id="9980" title="false"]
<div class="wpforms-container wpforms-container-full" id="wpforms-9980"><form id="wpforms-form-9980" class="wpforms-validate wpforms-form wpforms-ajax-form" data-formid="9980" method="post" enctype="multipart/form-data" action="/asterisk-et-le-protocole-sip/" data-token="2fc59a98beec225aaa51eed87ffc9410"><noscript class="wpforms-error-noscript">Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.</noscript><div class="wpforms-field-container"><div id="wpforms-9980-field_3-container" class="wpforms-field wpforms-field-layout" data-field-id="3"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-9980-field_3">Layout</label><div class="wpforms-field-layout-columns wpforms-field-layout-preset-50-50"><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_0-container" class="wpforms-field wpforms-field-name" data-field-id="0"><label class="wpforms-field-label" for="wpforms-9980-field_0">Résumé / Pitch du projet <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-9980-field_0" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][0]" required></div><div id="wpforms-9980-field_16-container" class="wpforms-field wpforms-field-radio wpforms-conditional-trigger" data-field-id="16"><label class="wpforms-field-label" for="wpforms-9980-field_16">J&#039;ai une description détaillée du projet</label><ul id="wpforms-9980-field_16"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_16_1" name="wpforms[fields][16]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_16_2" name="wpforms[fields][16]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_2">Non</label></li></ul></div><div id="wpforms-9980-field_18-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="18" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_18">Vous avez des technos en tête ?</label><ul id="wpforms-9980-field_18"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_18_1" name="wpforms[fields][18][]" value="fullstackJS / python" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_1">fullstackJS / python</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_18_2" name="wpforms[fields][18][]" value="nocode bubble" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_2">nocode bubble</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_18_3" name="wpforms[fields][18][]" value="autre" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_3">autre</label></li></ul></div><div id="wpforms-9980-field_19-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="19" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_19">Type de projet</label><ul id="wpforms-9980-field_19"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_19_1" name="wpforms[fields][19][]" value="Applications web / mobiles" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_1">Applications web / mobiles</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_19_2" name="wpforms[fields][19][]" value="Projet data, IA " ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_2">Projet data, IA </label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_19_3" name="wpforms[fields][19][]" value="Site vitrine / e-commerce" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_3">Site vitrine / e-commerce</label></li></ul></div><div id="wpforms-9980-field_12-container" class="wpforms-field wpforms-field-textarea wpforms-conditional-field wpforms-conditional-show" data-field-id="12" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_12">Description détaillée de votre projet </label><textarea id="wpforms-9980-field_12" class="wpforms-field-medium" name="wpforms[fields][12]" ></textarea></div></div><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_1-container" class="wpforms-field wpforms-field-email wpforms-one-third" data-field-id="1"><label class="wpforms-field-label" for="wpforms-9980-field_1">Votre e-mail <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-9980-field_1" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][1]" required></div><div id="wpforms-9980-field_17-container" class="wpforms-field wpforms-field-radio" data-field-id="17"><label class="wpforms-field-label" for="wpforms-9980-field_17">Signer un accord de confidentialité ?</label><ul id="wpforms-9980-field_17"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_17_1" name="wpforms[fields][17]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_17_2" name="wpforms[fields][17]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_2">Non</label></li></ul></div></div></div></div></div><div class="wpforms-submit-container"><input type="hidden" name="wpforms[id]" value="9980"><input type="hidden" name="wpforms[author]" value="1"><input type="hidden" name="wpforms[post_id]" value="5457"><button type="submit" name="wpforms[submit]" id="wpforms-submit-9980" class="wpforms-submit" data-alt-text="Envoi..." data-submit-text="Envoyer" aria-live="assertive" value="wpforms-submit">Envoyer</button><img src="https://www.netdevices.fr/wp-content/plugins/wpforms/assets/images/submit-spin.svg" class="wpforms-submit-spinner" style="display: none;" width="26" height="26" alt="Chargement en cours"></div></form></div> <!-- .wpforms-container -->