ITCooky Recetas

Vamos a cocinar it cositas

¡Vencemos las llamadas spam en un teléfono fijo con Asterisk con IVR por Grandstream ht813 en OrangePi PC Plus!

дата diciembre 9, 2019

Seguro que tienen un teléfono fijo, probablemente si, incluso si no está conectado y no lo utiliza! En mi caso, no esta trabajando durante más de dos días, ¡Porque algunos músicos novatos me llaman y ponen su música sin siquiera presentarse!


La idea es conectar esta línea telefónica PSTN al VOip Gateway FXS / FXO, pasar llamadas a IVR de Asterisk y ahi preguntar una simple pregunta «Si eres una persona, presiona 7» y luego la llamada va a un teléfono fijo.

Tomo Orange Pi PC Plus, tengo un case DIY con refrigeración, pero el stock tambien valdra.

En él se encuentra Debian Stretch con Armbian Linux 4.19.62-sunxi. Lo actualizo y instalo el Asterisco.

apt-get upgrade
apt-get install asterisk

Lanzo y miro el estado
systemctl start asterisk
systemctl status asterisk

Para que arranque al principio
systemctl enable asterisk

Sí, sigue siendo el mismo viejo Asterisk
asterisk -rvvvvv

Asterisk 13.14.1~dfsg-2+deb9u4, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 13.14.1~dfsg-2+deb9u4 currently running on OrangeHomeServer (pid = 6142)
OrangeHomeServer*CLI>

Para recordar qué hacer uso esas instrucciones mike42.me/blog/2015-01-02-how-to-set-up-asterisk-in-10-minutes como siempre, no todas cosa esenciales estan aqui, pero me alcanza para empezar!

No instalo un bozal webgui para Asterisk, por supuesto eso facilitaria la instalacion, pero el no hace todo de todo, ¡así que editare los archivos de configuración directamente!

Agregar al final del archivo
vi /etc/asterisk/users.conf
eso

[6001]
fullname = First    
secret = 1234
hassip = yes
context = users
host = dynamic

[6002]
fullname = Second
secret = 1234
hassip = yes
context = users
host = dynamic

Y agregar al archivo
vi /etc/asterisk/extensions.conf
al final ese texto

[users]
exten => 6001,1,Dial(SIP/6001)
exten => 6002,1,Dial(SIP/6002)

Entrp en la consola de asteriska
asterisk -rvvvvv
y hago
reload

Para hacer un test, instale en mi teléfono Android el app Linphone – es un programa terriblemente defectuoso, funcionó solo cuando volví a crear el perfil para SIP. La configuración es la IP de mi naranja con Asterisk, el método de transmisión UDP.

Y también hubo problemas con los derechos de acceso, si pide el derecho de grabar conversaciones, en realidad es el derecho de usar un micrófono … o no … ¡¡¡pero después de eso funciona !!! Hice la llamas de numeros 6001 y 6002, llamados de uno a otro, ¡Y funciona!

Ahora hago IVR. Primero necesito un archivo de audio, ¡para esto necesitamos dos programas!
apt-get install espeak
apt-get install sox

Es importante ir a la carpeta correcta y crear archivos allí.
cd /var/lib/asterisk/sounds/custom/
Buen programa, el sonido de un robot real. No hay ruso, pero quedo bien el serbio, ¡excepto los números!
espeak -s 1 -v sr "[[_::_::_::]]Zdrastvuite[[_::_::_::]]Esli vi reklamniy robot nazhmite piyat[[_::_::_::_::]]Esli vi chelovek [[_::_::_::]]nazhmite sem[[_::_::_::_::_::_::_::_::_::_::_::_::_::_::_::_::_::_::]]ot klu chaius[[_::_::_::]] dosvidania" -w ivr.wav
Asterisk necesita archivo ulaw hacerlo
sox ivr.wav --rate 8000 --channels 1 --type ul ivr.ulaw lowpass 3400 highpass 300

Aquí esta:

Y cambiamos el archivo
vi /etc/asterisk/extensions.conf
el contexto de los users y agregamos un nuevo spam_ivr

[users]
exten => 6666,1,Goto(spam_ivr,s,1)
exten => 6001,1,Dial(SIP/6001)
exten => 6002,1,Dial(SIP/6002)

[spam_ivr]
exten => s,1,Answer(500)
same => n(loop),Background(/var/lib/asterisk/sounds/custom/ivr)
exten => 5,1,Dial(SIP/6001)
exten => 7,1,Dial(SIP/6002)

Entro a la cansola de asteriska
asterisk -rvvvvv
y hago
reload

Aqui resulto un poco diferente de lo planeado. El IVR se cuelga cuando finaliza el audio file, no supe establecer un tiempo de espera. Por eso, la grabación se alargada de una manera antinatural.

Nuevamente llamo al 6666 y funciona!!!

Como elegir un router VoIP
Algo no está bien con la elección en este momento. Aparentemente, la mitad de la gente dejo de esperar la instalacion de un telefeno fijo en su apartamento, y la otra mitad, debido al spam, lo desconecto como yo…

Ahora (otoño de 2019) puedes comprar dos modelos de marca.

Primera DVG-7111S B1 es el viejo DVG-7111S A1 en una nueva caja cuadrada de moda El modelo fue popular en 2012 a juzgar por las preguntas en los foros sobre cómo hacerlo funcionar, y luego no desarrolló, ¡el último firmware es de 2016!

Y Grandstream ht813, compré ese!!! El router resultó ser con firmware del año 18, pero tambien hay una de 2019, es VoIP fresco! Conozco Grandstream desde hace mucho tiempo, hace unos 15 años instalé sus teléfonos y me sorprendió que tuvieran un menú web de los años 80 y nada haya cambiado, ¡el mismo menú tiene el mismo color y fonts!

Me sorprendió que el precio sea bastante grande 5500RUR, y lel router viene en una caja blanca sin una hermosa imagen, que no está cerrada en absoluto, y en el interior solo hay router, fuente de alimentación, cable de conexión y un trozo de papel que no alcanza ni para ir al baño, ¡no hay nada mas!

Tambien hay un cosplay absolutamente increíble de los chinos. En todos los detalles, estampan los modelos SPA3000 y SPA3102, con todas las pegatinas, manuales bajo la marca de la compañía que ya no exisiste mas de 6 años – Linksys by Cisco! Estoy seguro de que el firmware en ellos es original de hace diez años de cisco (aligual que en los switch de Huawei ), ¡pero por supuesto las compomemtes ya no lo son! En un momento, creí que Lynksis es Cisco por eso respetaba mucho a Lynksis, pero ahora leí el wiki y no era verdad eso: Cisco compró Sipura y Lynksis y decidió que, bajo la marca de Lynksis, iba a producir routers VoIP de Sipura… Tengo uno de esos SPA3000 (ese) Todavía muestra signos de vida, ¡pero hay tanto ruido en el auticular que no me atrevi comprar uno de esos!

Conectamos el enrutador VoIP Grandstream ht813 a Asterisk

¡Primero debe hacer llamadas desde la línea telefónica PSTN al asterisco!

Aca hace falta una pista pa seguir trustore.ru/article/asterisk/nastrojka-grandstream-ht503-dlya-freepbx-asterisk-trixbox-elastix.html No importa que hayan pasado muchos años y que el modelo sea diferente: ¡nada cambia en el menú de Grandstrem durante décadas, incluso en modelos diferentes! Como no tengo un webgui Asterisk, me sera un poco mas dificil instalarlo…

Vamos a Grandstream ht813 en la pestaña BASIC SETTINGS en Unconditional Call Forward to VOIP: hay que escribir asi

Esta configuración hace pasar todas las llamadas que llegan al puerto FXO al número 6666 en la ip de mi asterisco.

Para aplicar cambios cliquea Apply

Luego vamos a FXO PORT y hacemos eso

Aqui cambio Primary SIP Server y SIP User ID y Authenticate Password asterisco no acepta la llamada sin una cuenta!

Para aplicar cambios cliquea Apply

Aqui aparece una cosa graciosa !!! Router VoIP no puede colgar la llamada; simplemente no entiende que está colgada en el otro extremo. Para hacer esto, necesita que le digan qué pitidos intermitentes escuchar: aquí, para el router GPON RV6699, son asi

Aqui cambio Enable Current Disconnect y Enable PSTN Disconnect Tone Detection y STN Disconnect Tone y AC Termination Model y PSTN Ring Thru FXS

Para aplicar cambios cliquea Apply
Les contare cómo buscar parámetros para su línea luego

Y el puerto fsx será un teléfono normal con el número 6002, abro FXS PORT

Aqui cambio Primary SIP Server y IP User ID y Authenticate Password
Para aplicar cambios cliquea Apply

Ahora estoy editando archivos de asterisco
vi /etc/asterisk/extensions.conf
extensións seran esos

[users]
exten => 6666,1,Goto(spam_ivr,s,1)
exten => 6001,1,Dial(SIP/6001)
exten => 6002,1,Dial(SIP/6002)

[spam_ivr]
exten => s,1,Answer(500)
exten => s,2,Monitor(wav,,m)
same => n(loop),Background(/var/lib/asterisk/sounds/custom/ivr)
exten => 5,1,Dial(SIP/6001)
exten => 7,1,Dial(SIP/6002)

Aquí se agrega una línea de grabación de llamadas

exten => s,2,Monitor(wav,,m)

archivos de llamadas apareceran aqui /var/spool/asterisk/monitor

Y en el archivo users.conf
vi /etc/asterisk/sip.conf
Agrego una cuenta para el router para la línea pstn fso todo el texto es asi

[6789]
fullname = MGTS PSTN
secret = 1234
hassip = yes
context = users
host = dynamic

[6001]
fullname = Test Android
secret = 1234
hassip = yes
context = users
host = dynamic

[6002]
fullname = Home phone
secret = 1234
hassip = yes
context = users
host = dynamic

Entro a la cansola de asteriska
asterisk -rvvvvv
y hago
reload

Y funciona!!!

¿Cómo elegir el tono de desconexión PSTN para su línea telefónica?
Me llamé desde mi teléfono móvil a mi casa, esperé por IVR, presioné el número 7, luego corte la llamada, pero el timbre continuo sonando, Grandstream continúa llamando a pesar de que la llamada se detuvo, toda esa llamada fue gravada po Asterisk ¡todos los sonidos!

Recojo el archivo de audio y lo abro en el programa Free, open source, cross-platform audio software Audacity. Selecciono un pitido de una serie de pitidos finales y veo su espectrogramaAnalyze > Plot Spectrum…

Llevo el crucero a la cima, e inmediatamente salta a la cima, miro abajo Peak 425Hz 20.1Db

Mido la duración del pitido y el silencio entre ellos

Esta en la parte inferior, solo selecciona Length and End of Selection tengo 359 milisegundos redondeado sera 350

Y todo, entonces solo sustituye en la fórmula

Syntax: f1=freq@vol, f2=freq@vol, c=on1/off1-on2/off2-on3/off3;
Allowed Range: freq = 0 to 4000Hz; vol = -40 to -24dBm
Default: Busy Tone: f1=480@-32,f2=620@-32,c=500/500;

Para mi línea telefónica MGTS a través del GPON RV6699, necesito insertar

f1=425@-21,f2=425@-21,c=350/350;

El pico es uno, pero puede haber más por lo tanto f1 y f2, para un pico todos lo describen dos veces, luego c es la duracion del pitido y del silencio!

¡Ahora estamos llamando desde un teléfono fijo a través de Grandstream ht813 en una línea de PSTN
Es re facil (al igual que en SPA3000, pero en letras diferentes) solo en Dial Plan en la pestaña FXS PORT escribamos

{ L:x+ }

Todo lo que se marca en un teléfono fijo es pasado a PSTN. Pero no hay pitidos de llamada, asi que debe esperar hasta que le contestan.

Aparecerán llamada spam aquí, ¡En cuando los atrape!
Robot puro: ¡intento fallido!

Los robots humanos de los callcenters llaman los fines de semana (bastardos) tampoco pasan, uf daria todo por ver sus caras en ese momento :)))


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *