El problema del colgado en líneas analógicas es un problema que siempre ha estado en España y que gracias a Julián Menéndez se ha solucionado para aquellas líneas que tiene inversión de polaridad. Aún se tiene el problema cuando las líneas no tiene inversión de polaridad y voy a explicar como lo he podido solucionar en algun sitio que otro.
Dentro del directorio de fuentes de asterisk, si editamos el fichero Makefile podemos encontrar las siguientes líneas:
# Original busydetect routine
BUSYDETECT = #-DBUSYDETECT
# Improved busydetect routine, comment the previous one if you use this one
BUSYDETECT+= #-DBUSYDETECT_MARTIN
# Detect the busy signal looking only at tone lengths
# For example if you have 3 beeps 100ms tone, 100ms silence separated by 500 ms of silence
BUSYDETECT+= #-DBUSYDETECT_TONEONLY
# Inforce the detection of busy singal (get rid of false hangups)
# Don’t use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
Pues bien si queremos detectar el colgado en este tipo de líneas debemos hacer lo siguiente:
Compilar asterisk con las opciones activadas de BUSYDETECT+= -DBUSYDETECT_MARTIN y de BUSYDETECT+= -DBUSYDETECT_TONEONLY.
Una vez compilado asterisk, en el zapata.conf debemos poner las siguientes líneas:
answeronpolarityswitch=no
hanguponpolarityswitch=no
busydetect=yes
además el parámetro busycount habrá que probar con varios valores teniendo en cuenta que si se pone muy bajo, es posible que no detecte el colgado y si es muy alto produzca cortes aleatorios. Las pruebas que yo he realizado me han ido bien con valores entre 5 y 11.
En una instalación rara con analógico vía LMDS, también se ha podido solucionar con BUSYDETECT+= -DBUSYDETECT_MARTIN y
BUSYDETECT+= -DBUSYDETECT_COMPARE_TONE_AND_SILENCE.
Espero que os ayude.
Tron
Asterisk | 13 Comments »