Tuesday, December 17, 2019

Analisis de Probe request

Para conectarse a las redes WIFI, los dispositivos deben descubrir o detectar las redes existentes, para esto utilizan los clientes los probe request en todos los canales de la banda en los que está habilitado para transmitir.



Estos paquetes se pueden capturar y así obtener la información de los dispositivos WIFI que están cercanos.


En Linux para conseguir esto debemos realizar los siguientes pasos:

1.- Configuración de Interface en modo Monitor


Para esto primero deshabilitamos el network-manager y deshabilitamos la interface con ifconfig:

sudo service network-manager stop
sudo ifconfig wlp1s0 down


Configuramos la interface en modo monitor y la volvemos a activar:

sudo iwconfig wlp1s0 mode monitor
sudo ifconfig wlp1s0 up


Verificamos que la interface este en modo monitor:

sudo iwconfig wlp1s0
wlp1s0    IEEE 802.11bgn  Mode:Monitor  Frequency:2.412 GHz  Tx-Power=15 dBm  
                Retry short limit:7   RTS thr:off   Fragment thr:off
                Power Management:off




en modo normal deberia verse asi:

sudo iwconfig wlp1s0
wlp1s0    IEEE 802.11bgn  ESSID:"XXXXX" 
          Mode:Managed  Frequency:2.412 GHz  Access Point: 9A:8A:20:XX:XX:XX  
          Bit Rate=72.2 Mb/s   Tx-Power=15 dBm  
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=62/70  Signal level=-48 dBm 
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:31   Missed beacon:0



Ya estamos listo para verificar los probe request a traves de tcpdump o Wireshark


2.- Capturar a traves de TCPDUMP


En tcpdump debemos filtrar los probe request en nuestra interface WIFI:

sudo tcpdump -i wlp1s0 -s 0 -nne '(type mgt and subtype probe-req)' 

Para mas información de como filtrar por favor revisen [1]

Con esto obtendrán algo así:


 sudo tcpdump -i wlp1s0 -s 0 -nne '(type mgt and subtype probe-req)'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp1s0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 262144 bytes
10:26:06.146207 249112607us tsft 1.0 Mb/s 2412 MHz 11b -31dBm signal -31dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request () [1.0 2.0 5.5 11.0 Mbit]
10:26:06.151624 249117920us tsft 1.0 Mb/s 2412 MHz 11b -27dBm signal -27dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request (prueba-wireshark) [1.0 2.0 5.5 11.0 Mbit]
10:26:06.166410 249132835us tsft 1.0 Mb/s 2412 MHz 11b 4dBm signal 4dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request () [1.0 2.0 5.5 11.0 Mbit]
10:26:06.169342 249135654us tsft 1.0 Mb/s 2412 MHz 11b 7dBm signal 7dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request (prueba-wireshark) [1.0 2.0 5.5 11.0 Mbit]
10:26:06.249639 249216271us tsft 1.0 Mb/s 2412 MHz 11b -28dBm signal -28dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request () [1.0 2.0 5.5 11.0 Mbit]
10:26:06.252041 249218017us tsft 1.0 Mb/s 2412 MHz 11b -10dBm signal -10dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request (prueba-wireshark) [1.0 2.0 5.5 11.0 Mbit]
10:26:06.269873 249236306us tsft 1.0 Mb/s 2412 MHz 11b -22dBm signal -22dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request () [1.0 2.0 5.5 11.0 Mbit]
10:26:06.271229 249237709us tsft 1.0 Mb/s 2412 MHz 11b -21dBm signal -21dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request (prueba-wireshark) [1.0 2.0 5.5 11.0 Mbit]
10:26:06.372397 249338889us tsft 1.0 Mb/s 2412 MHz 11b -10dBm signal -10dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request () [1.0 2.0 5.5 11.0 Mbit]
10:26:07.263172 250230286us tsft 1.0 Mb/s 2412 MHz 11b -67dBm signal -67dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:34:e1:2d:12:df:a4 Probe Request () [1.0 2.0 5.5 11.0 6.0 9.0 12.0 18.0 Mbit]
10:26:07.395149 250362383us tsft 1.0 Mb/s 2412 MHz 11b -60dBm signal -60dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:34:e1:2d:12:df:a4 Probe Request () [1.0 2.0 5.5 11.0 6.0 9.0 12.0 18.0 Mbit]
10:26:07.803719 250771377us tsft 1.0 Mb/s 2412 MHz 11b -42dBm signal -42dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:34:e1:2d:14:b2:bb Probe Request () [1.0 2.0 5.5 11.0 6.0 9.0 12.0 18.0 Mbit]
10:26:07.966819 250934075us tsft 1.0 Mb/s 2412 MHz 11b -90dBm signal -90dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:10:98:c3:01:f5:37 Probe Request () [1.0 2.0 5.5 11.0 Mbit]
10:26:07.980292 250947789us tsft 1.0 Mb/s 2412 MHz 11b -54dBm signal -54dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:34:e1:2d:14:b2:bb Probe Request () [1.0 2.0 5.5 11.0 6.0 9.0 12.0 18.0 Mbit]
10:26:08.003021 250970953us tsft 1.0 Mb/s 2412 MHz 11b -58dBm signal -58dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:34:e1:2d:14:b2:bb Probe Request () [1.0 2.0 5.5 11.0 6.0 9.0 12.0 18.0 Mbit]
10:26:08.333273 251300852us tsft 1.0 Mb/s 2412 MHz 11b -87dBm signal -87dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:30:07:4d:c0:d2:b7 Probe Request (RAYTEL) [1.0 2.0 5.5 11.0 Mbit]
10:26:08.807109 251775003us tsft 1.0 Mb/s 2412 MHz 11b -48dBm signal -48dBm signal antenna 0 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:70:bb:e9:aa:b1:9f Probe Request () [1.0 2.0 5.5 11.0 Mbit]



Aqui como puntos importantes son, utilizando la ultima linea:

SA:70:bb:e9:aa:b1:9f: MAC desde dispositivo que genera el Probe Request

-48dBm: Es el nivel de señal con que se capturo ek paquete, esto puede darte una idea de que tan lejos o cerca este el dispositivo

[1.0 2.0 5.5 11.0 Mbit]: codificaciones que soporte el dispositivo

3.- Capturar a traves de Wireshark


en Wireshark debemos capturar en la interface WIFI y utilizar el siguiente filtro:

lan.fc.type_subtype == 0x0004

para mas detalles ver [2]





[1]: http://infosec.vishalmishra.in/2013/09/capture-wireless-traffic.html

 [2]: https://notasinalambricas.wordpress.com/2016/11/17/descubriendo-redes-inalambricas-parte-2/

[3]: https://www.cisco.com/c/en/us/support/docs/wireless-mobility/80211/200527-Fundamentals-of-802-11-Wireless-Sniffing.html











Thursday, December 20, 2018

Se instalara MySQL en un Ubuntu 18.04:

 sudo apt install mysql-server

Para poder acceder de cualquier lugar se debe editar el archivo de configuración y permitir las conexiones remotas:

 sudo nano  /etc/mysql/mysql.conf.d/mysqld.cnf

 # cambiar de 127.0.0.1 a 0.0.0.0
 bind-address = 0.0.0.0

y se debe reiniciar el servicio:

 sudo service mysql restart

Ya el servidor permite conexiones remotas crearemos un usuario con acceso remoto y a todas las bases de datos:

 sudo mysql

 CREATE USER 'nombre_usuario'@'%' IDENTIFIED BY 'tu_contrasena';
 GRANT ALL PRIVILEGES ON * . * TO 'nombre_usuario'@'%';
 FLUSH PRIVILEGES;

Wednesday, December 16, 2015

Utilizar modulos SFP de terceros en swtiches Cisco

Aunque SFP no es un estándar, si se construye en base a un multi-source agreement (MSA) el cual permite que los módulos SFP sean compatibles entre múltiples fabricantes. 



Esto permite que uno pueda instalar módulos de distintas marcas en equipamiento Huawei, Cisco SMB, Juniper, etc. Pero en los switches Cisco de la linea Catalyst esto no es posible por que al instalar un modulo el switch arroga el siguiente error:


%GBIC_SECURITY_CRYPT-4-VN_DATA_CRC_ERROR: GBIC in port 65586 has bad crc
%PM-4-ERR_DISABLE: gbic-invalid error detected on Gi1/0/50, putting Gi1/0/50 in err-disable state

Lo cual bloquea la puerta y no la permite utilizar. Pero esto tiene solucion con los siguientes comandos:

service unsupported-transceiver
no errdisable detect cause gbic-invalid

El primer comando permite agregar módulos SFP de terceros o no soportados, y el segundo deshabilita el error por modulo invalido. Despues esto es necesario es reiniciar la puerta del switch que quedo con error para que esta funcione.


Saturday, September 19, 2015

Proxy SIP Repro

Repro es un proxy SIP simple de implementar y de configurar. Este proxy esta incluido en los repositorios de Debian 8.

Instalación


La instalacion es simple, solo debemos instalar como cualquier paquete con aptitude:

sudo aptitude install repro

Y lo iniciamos:

sudo /etc/init.d/repro start

la administracion es el siguiente:

http://127.0.0.1:5080/index.html

Los datos para ingresar son Usuario: admin y pass: admin


Configurar dominio


 Ingresamos a la pagina DOMAINS y agregamos la IP de computador con repro:


En este caso agregamos la IP 192.168.0.111 y el puerto 5060

Al agregar un nuevo dominio es necesario reiniciar Repro:

sudo /etc/init.d/repro restart

Configurar usuarios (extensiones)



Ahora de agregamos los usuarios para esto ingresamos a ADD USER



Agregamos los usuarios en el dominio 192.168.0.111 con los siguientes datos:

Usuario1
User Name: 100
Password: 100

Usuario2
User Name: 101
Password: 101




Configurar clientes


Primero configuraremos Linphone en nuestro escritorio Linux:

Opciones -> Preferencias ->  Gestionar Cuentas SIP -> Añadir




Ahora configuraremos linphone es nuestro android


Ahora podemos realizar llamadas entre el teléfono y el computador

Sunday, September 13, 2015

Calculo de enlaces inalambricos

El calculo de enlace se base en los siguientes datos y formulas, aquí se simplifico los cálculos dando por supuesto que hay linea vista, la zona de fresnel esta despegada y no se calcula la interferencia. El margen de potencia de requiere que al menos sea de 15db para que el enlace sea realizable
Nota: En enlace de menos de 7GHz de frecuencias, factores como lluvia, nieve, neblina no afectan significativamente los cálculos de los enlaces.


d = Distancia en Km

f = Frecuencia en Mhz

P_tx_tx = Potencia de transmisión del transmisor

At_cab_tx =Atenuación del cable de transmisor

Ga_An_tx = Ganancia antena de transmisor

At_cab_rx = Atenuación del cable de receptor

Ga_An_rx = Ganancia antena de receptor

Sen_rx  = Sensibilidad de receptor en data rate definido
 
 

Formulas

Atenuación_espacio_libre = 32,45 + 20log(d)+20log(f)  
Potencia = Pot_trans_tx – Aten_cab_tx – Aten_cab_rx + Gan_ant_tx + Gan_ant_tx  
Potencia_recepción = Potencia – Atenuación_espacio_libre

Margen de potencia de recepción

Margen = Potencia_recepción – Sensibilidad_del_receptor

Ejemplo de Calculo

El enlace sera de 1,9 Km de distancia, Para la implementación se utilizaran los equipos Ubiquiti PBE-M5-300 en la frecuencia de 5.8GHz, de estos equipos se obtienen los siguientes datos:


d = 1,9 Km
f = 5800 MHz
P_tx_tx = 21 db                  nota: obtenido en datasheet de equipo
At_cab_tx =0 db                  nota: No se utilizan cables la antena esta integrada
Ga_An_tx = 22 db                 nota: obtenido en datasheet de equipo 
At_cab_rx = 0db                  nota: No se utilizan cables la antena esta integrada
Ga_An_tx = 22db                  nota: obtenido en datasheet de equipo
Sen_rx = -73db                   nota: sensibilidad obtenida para data rate MCS15


Atenuación_espacio_libre = 32,45 + 20log(1,9)+20log(5800) = 32,45 + 5,58  +  75,3 = 113,3

Potencia = Pot_trans_tx – Aten_cab_tx – Aten_cab_rx + Gan_ant_tx + Gan_ant_tx = 21 - 0 -0 + 22 + 22 = 65

Potencia_recepción = Potencia – Atenuación_espacio_libre' = 65 - 113,3 = -49 db

Margen de potencia de recepción


Margen = Potencia_recepción – Sensibilidad_del_receptor = -49 - (-73) =  24 
 
El resultado nos da un margen mayor al margen requerido de 15, asi que el enlace es factible.
 
 

VRRP en Vyos/UBNT EdgeRouter

VRRP (Virtual Router Redundancy Protocol) es un protocolo de redundancia a nivel IP definido en el RFC3768. Fue diseña para permitir alta disponibilidad en la puerta de enlace por defecto en una subred, aunque se puede utilizar tambien para permitir alta disponibilidad de servicios (servidores web, Telefonía, etc). 
En este ejemplo revisaremos la funcionalidad original, alta disponibilidad de la puerta de enlace. Se presupone que ambos Vyos ya tienen acceso a internet, tienen configuradas interfaces, rutas, regla de NAT y de filtrado. El diagrama es el siguiente:


Los datos relevantes son:

Subred: 10.0.0./24
IP virtual: 10.0.0.10
IP router1: 10.0.0.11
IP router2: 10.0.0.12

El router1 sera el principal, tendrá mayor prioridad, y ademas tendra configurado el comando preempt que le permitira recuperar la IP virtual luego de una caida o reinicio.

Router1

set interfaces ethernet eth0 vrrp vrrp‐group 10
set interfaces ethernet eth0 vrrp vrrp‐group 10 virtual‐address 10.0.0.10/24
set interfaces ethernet eth0 vrrp vrrp‐group 10 preempt true
set interfaces ethernet eth0 vrrp vrrp‐group 10 priority 150
commit
save
#
show interfaces ethernet eth0 vrrp 
vrrp‐group 10 {
  preempt true
  priority 150
  virtual‐address 10.0.0.10/24
}
 

Router2


set interfaces ethernet eth0 vrrp vrrp‐group 10
set interfaces ethernet eth0 vrrp vrrp‐group 10 virtual‐address 10.0.0.10/24
set interfaces ethernet eth0 vrrp vrrp‐group 10 priority 100
commit
save
#
show interfaces ethernet eth0 vrrp 
vrrp‐group 10 {
  priority 100
  virtual‐address 10.0.0.10/24
}


Con esta configuración ya tendremos corriendo VRRP entre nuestro routers. Router1 en modo normal recibirá el trafico desde la subred, ante una caida de este Router2 obtendrá la IP virtual y permitira que el flujo de trafico a internet no se interrumpa.

Las opciones del comando VRRP en Vyos son las siguientes:

interfaces ethernet eth0 vrrp 
   vrrp-group <1-255> #VRRP group number
      advertise-interval <1-255> #Advertise interval (default 1)
      authentication
      description  #Description
      disable  #VRRP group disabled
      hello-source-address  #Source address for vrrp hello packets (optional)
      preempt  #Preempt mode
      preempt-delay <0-1000> #Preempt Delay in seconds
      priority <1-255> #Priority
      rfc3768-compatibility
      run-transition-scripts  #Scripts for VRRP state-transitions
      sync-group  #Add this vrrp group to a sync group
      virtual-address  #Virtual IP address (up to 20 per group)


Saturday, August 01, 2015

Migracion de APs Cisco de controlados a autonomos

Para migrar un AP desde una IOS controlada a una IOS autonoma requerimos
una imagen de tipo autonomo como ejemplo ap1g2-k9w7-tar.152-4.JB5.tar, un TFTP y un servidor DHCP, se recomienda TFTPd32

Nota: tipo de IOS

k9w7 – IOS autonoma
k9w8 – IOS lightweight completa(this is what is bundled in the WLC .aes image, and is factory
 installed on “mesh” APs)
rcvk9w8 – lightweight recovery image – this is factory installed on lightweight APs, unless 
a “mesh” image is specified; it lacks radio firmware

Activamos el servidor DHCP y el TFTP en el computador, entonces obtenemos que la ip de la computadora es la 10.42.0.1, via consola ingresamos al AP controlado y realizamos los siguiente pasos:

!Verificamos que tenga una IP del DHCP
show ip int brief
!probamos IP al computador
ping 10.42.0.1
!Ingresamos el comando para poder realizar configuraciones en el AP
debug capwap console cli
! y descargamos la IOS autonomo 
archive download-sw /force-reload /overwrite tftp://10.42.0.1/ap1g2-k9w7-tar.152-4.JB5.tar 
 
Luego de esto el AP reinicio y verificamos que ya este con la nueva IOS
 
ap#sh version 
Cisco IOS Software, C1600 Software (AP1G2-K9W7-M), Version 15.2(4)JB5, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Thu 01-May-14 20:43 by prod_rel_team

L2TPV3 con Vyos/UBNT EdgeRouter/Vyatta



L2TPV3 es un estándar creado por la IETF que permite encapsular trafico de capa 2 y llevarlo sobre redes IP, la definición de Wikipedia es la siguiente:

"Layer 2 Tunneling Protocol Version 3 is an IETF standard related to L2TP that can be used as an alternative protocol to Multiprotocol Label Switching (MPLS) for encapsulation of multiprotocol Layer 2 communications traffic over IP networks. Like L2TP, L2TPv3 provides a pseudo-wire service, but scaled to fit carrier requirements."


Esta tecnologia se puede utilizar para compartir un segmento LAN entre dos sitios a traves de redes IP, Internet o una WAN privada.

Un ejemplo se ve en este diagrama:





 Aquí se uniran dos data center con virtualizacion, L2TPv3 permitirá migrar maquinas virtuales de un sitio a otro manteniendo la configuración de red de la misma.
  

La configuración es la siguiente:

Data Center Sitio 1

#Parámetros básicos de bridge 
set interfaces bridge br0 aging '300' 
set interfaces bridge br0 hello-time '2'
set interfaces bridge br0 max-age '20'
set interfaces bridge br0 priority '0'
set interfaces bridge br0 stp 'false'
# interface que conectara el Tunel 
set interfaces ethernet eth0 address 'x.x.x.x/24'
# Agregar interface de la LAN al bridge 
set interfaces ethernet eth1 bridge-group bridge 'br0'
# Configuración interface L2TPv3  
set interfaces l2tpv3 l2tpeth0 bridge-group bridge 'br0'
set interfaces l2tpv3 l2tpeth0 destination-port '10000'
set interfaces l2tpv3 l2tpeth0 encapsulation 'udp'
set interfaces l2tpv3 l2tpeth0 local-ip 'x.x.x.x'
set interfaces l2tpv3 l2tpeth0 peer-session-id '1'
set interfaces l2tpv3 l2tpeth0 peer-tunnel-id '1'
set interfaces l2tpv3 l2tpeth0 remote-ip 'y.y.y.y'
set interfaces l2tpv3 l2tpeth0 session-id '1'
set interfaces l2tpv3 l2tpeth0 source-port '10000'
set interfaces l2tpv3 l2tpeth0 tunnel-id '1' 
 
 
Data Center Sitio 2
 
#Parámetros básicos de bridge 
set interfaces bridge br0 aging '300'
set interfaces bridge br0 hello-time '2'
set interfaces bridge br0 max-age '20'
set interfaces bridge br0 priority '0'
set interfaces bridge br0 stp 'false'
# interface que conectara el Tunel 
set interfaces ethernet eth0 address 'y.y.y.y/24'
# Agregar interface de la LAN al bridge 
set interfaces ethernet eth1 bridge-group bridge 'br0' 
# Configuración interface L2TPv3  
set interfaces l2tpv3 l2tpeth0 bridge-group bridge 'br0'
set interfaces l2tpv3 l2tpeth0 destination-port '10000'
set interfaces l2tpv3 l2tpeth0 encapsulation 'udp'
set interfaces l2tpv3 l2tpeth0 local-ip 'y.y.y.y'
set interfaces l2tpv3 l2tpeth0 peer-session-id '1'
set interfaces l2tpv3 l2tpeth0 peer-tunnel-id '1'
set interfaces l2tpv3 l2tpeth0 remote-ip 'x.x.x.x'
set interfaces l2tpv3 l2tpeth0 session-id '1'
set interfaces l2tpv3 l2tpeth0 source-port '10000'
set interfaces l2tpv3 l2tpeth0 tunnel-id '1'

Sincronización con Unison

 

Vamos a hacer uso de la herramienta Unison para sincronizar datos entre dos computadores, como por ejemplo dos servidores de FreeSWITCH:
Instalamos unison en ambas computadoras (debe ser exactamente el mismo número de versión en ambas máquinas):

apt-get install unison
 
 
Luego en el directorio home del usuario que vamos a usar para sincronizar creamos el directorio .unison:

mkdir /root/.unison

Ahora creamos un archivo con extensión /root/.unison/default.prf que indica las carpetas que deseamos sincronizar y las carpetas o archivos que deseemos ignorar, debe ser algo similar a:
 
# computadora A
root = /home
  
# computadora B
root = ssh://ip_computadora_B//home 
# sincronizar 
path = miusuario/Documentos
# ignorar 
ignore = Path miusuario/Instaladores
ignore = Name .*

Y llevamos a cabo la sincronización con el comando:
 
unison default

(debe ejecutarse a nombre del usuario miusuario y desde la carpeta /root).

Ejemplo de sincronizacion de carpeta de directory entre dos FreeSWITCH
 
auto = true
# disminuir el debug
batch = true
# archivos locales y remota
root = ssh://192.168.80.2//usr/local/freeswitch/conf/directory/default
root = /usr/local/freeswitch/conf/directory/default
perms = 0
#Ante un conflicto le da preferencia este directorio
prefer = /usr/local/freeswitch/conf/directory/default
ignore = Path */Olds
ignore = Name {olds,*~,tmp,temp,.*}

 

Sunday, January 25, 2015

Codec g729 en FreeSWITCH

G729 es el codec bajo consumo de ancho de banda mas utilizado en los teléfonos IP físicos, para poder utilizarlo en FreeSWITCH se puedo utilizar en modo passthrough, utilizando el modulo mod_com_g729, de manera gratuita, pero si necesitamos transcoding o buzon de voz con g729 necesitaremos utilizar el modulo mod_g729 por el cual hay que pagar 10 dolares por canal, esto debido a que el codec g729 esta patentado y hay que pagar royalty por uso. 
Pero ahora existe otro modulo que no esta en los repositorios oficiales de FreeSWITCH, que utiliza g729 con la implementacion open source de Belledonne Communications, los creadores de nuestro querido Linphone, el cual nos permite utilizar g729 para transcoding y otras aplicaciones sin pagar. 


Instalación


 cd /u sr/src/freeswitch/src/mod/codecs/ 
git clone https://github.com/xadhoom/mod_bcg729.git 
cd mod_bcg729 

Modificamos el archivo Makefile

FS_INCLUDES=/usr/local/freeswitch/include

FS_MODULES=/usr/local/freeswitch/mod

Despues compilamos e instalamos

make & make install

Entramos a FreeSWITCH y cargamos el nuevo modulo

unload mod_g729

load mod_bcg729

Ahora ya tenemos corriendo g729 en FreeSWITCH


===============ACTUALIZACIÓN====================

Para FreeSWITCH 1.6 se debe modificar las variables de Makefile asi:

FS_INCLUDES=/usr/local/freeswitch/include/freeswitch

FS_MODULES=/usr/local/freeswitch/mod