Hola.
Ayer publiqué una receta para instalar asterisk en gentoo de un plumazo, ya que me tope con la instalación de asterisk en un pc gentoo.
Horas más tarde esto se complicó un poco y misteriosamente los clientes SIP no conectaban con asterisk :S :S :S .
Estube haciendo las pruebas con Sjphone en la misma máquina que corria Asterisk pero nada…
Lo primero que hicé fué ver si verdaderamente el daemon de asterisk estaba escuchando en el puerto 5060, que lo pude corroborar enseguida:
netstat -tupl:
4257/asterisk
udp 0 0 *:5060 *:*
Asterisk si estaba escuchando en el puerto 5060, osea todo estaba correcto… o casi todo..
Empecé un fichero ‘sip.conf‘ y ‘extensions.conf‘ totalmente desde 0 pero tampoco era la solución….
Cuando de repente se me ocurrió teclear »dmesg» para ver los mensajes del sistema y me encuentro con esto:
[ 88.492694] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0
[ 88.993099] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0
[ 89.992296] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0
[ 91.992871] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0
Nf_sip estaba dropeando paquetes con destino al puerto 5060… Entonces supusé que ese era el problema…
LA SOLUCIÓN (1) – La sencilla
echo «blacklist nf_nat_sip» >> /etc/modprobe.d/blacklist.conf
echo «blacklist nf_conntrack_sip» >> /etc/modprobe.d/blacklist.conf
reboot
Esto lo que hará es meter en la «lista negra» blacklist, los modulos nf_nat_sip y nf_conntrack_sip para que el kernel no los carge al inicio del sistema…
Esta solución funcionaria si dichos modulos estan seleccionados en el archivo .config del kernel como modulos…
¿¿La SOLUCIÓN (2)?? – Si NO los tenemos cmo modulos (<M>)
Ir a –> /usr/src/linux
Editar el archivo: .config
Cambiar las lineas:
CONFIG_NF_CONNTRACK_SIP
CONFIG_NF_NAT_SIP
###Por estas:
# CONFIG_NF_CONNTRACK_SIP is not set
# CONFIG_NF_NAT_SIP is not set
Guardar los cambios en .config
make && make modules_install && make install
cp arch/x86/boot/bzImage /boot/NOMBREKERNEL
reboot
– – NOMBREKERNEL: se sustituye por la imagen del kernel donde apunte grub (grub.conf)
Con esto desabilitamos totalmente la carga de los modulos CONFIG_NF_CONNTRACK_SIP y CONF_NAT_SIP en el kernel y se solucionaria nuestro problema.
Un saludo y espero que sirva de ayuda.
Bye!