Susurros
Posts: 17
Joined: Tue Oct 31, 2017 12:52 am

Portero automático

Sat Dec 30, 2017 6:12 pm

Hola buenas, me llamo Iván y soy nuevo en este mundillo de la raspberry. Estoy intentando realizar una llamada VoIP entre el portero automático de mi casa y un movil, de tal manera que cuando llamen al timbre se produzca una llamada a traves de wifi entre el movil y el telefonillo. De momento he instalado Asterisk y FreePBX en la rasp, con lo que he conseguido realizar una llamada VoIP entre varios moviles conectados a la red, pero no se me ocurre a priori el modo se conseguir transladar esa llamada a lo que es el portero. Pensé en comprar un adaptador VoIP como los que se ponen en los teléfonos analógicos antiguos, pero no se si es la solución mas viable. Otra idea sería saber la codificación de audio que utiliza android e intentar realizar algo similar muestreando la señal de audio del portero y mediante un CAD y codificandola mandarla via wifi. Que opinan, tienen alguna idea de como hacerlo?

raspdroid
Posts: 1533
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: Portero automático

Sat Dec 30, 2017 9:40 pm

Hola,

Podrías intentar algo así:

viewtopic.php?f=37&t=32098#p276680

Saludos

Susurros
Posts: 17
Joined: Tue Oct 31, 2017 12:52 am

Re: Portero automático

Tue Jan 02, 2018 3:12 pm

Gracias por la respuesta, pero lamentablemente eso no resuelve mi problema. En el poyecto que me comentas, ha utilizado la rapsberry simplemente para abrir la puerta, mi problema se encuentra en realizar la llamada VoIP.

raspdroid
Posts: 1533
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: Portero automático

Tue Jan 02, 2018 4:13 pm

Hola,

Te lo puse para que captes la idea, luego tu lo haces con el lenguaje que quieras.

Básicamente la idea es tener una extensión en el dialplan de asterisk que haga la llamada a donde quieras (o envíe un archivo multimedia) y llamas a esa extensión cuando cambie de estado el pin que vayas a utilizar. Eso lo puedes hacer con bash, python o java.

Aunque seguro que hay formas más elegantes de hacerlo con asterisk pero hace mucho tiempo que no lo uso a ver si alguien sabe otra.

Si tu duda es con el dial-plan te sugiero que preguntes en la comunidad de asterisk.

Saludos

Susurros
Posts: 17
Joined: Tue Oct 31, 2017 12:52 am

Re: Portero automático

Thu Jan 04, 2018 1:34 pm

Muchas gracias, tengo que ponerme al día con asterisk porque no tengo mucha idea. Le tiraré estos días y comentaré mis avances.

Susurros
Posts: 17
Joined: Tue Oct 31, 2017 12:52 am

Re: Portero automático

Fri Jan 05, 2018 1:58 am

Claro, ahora que he indagado un poco más me doy cuenta dos problemas. El primero es que el telefonillo o portero automático es un dispositivo analógico por lo que no utiliza protocolo SIP. Esto nos lleva al segundo problema, al configurar el dial-plan no se cómo asignarle una extensión a un dispositivo usb (micrófono y altavoz del portero) conectado a la raspberry.

raspdroid
Posts: 1533
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: Portero automático

Fri Jan 05, 2018 9:05 am

Creía que solo querías recibir una notificación cuando pulsaban el interfono si lo que quieres es realizar una comunicación hay varios proyectos por ahí que tratan de como hacer un interfono con la rpi.


mira la extensión intercom por si te ayuda.
https://pastebin.com/QPahQ8eb

https://www.jacobdevans.com/raspberry-p ... -intercom/

raspdroid
Posts: 1533
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: Portero automático

Fri Jan 05, 2018 9:39 am

Has probado con SIMPL5 ? Si tienes una PiCamera o una Webcam usb podrías usar vídeo con asterisk.

https://www.doubango.org/sipml5/


https://www.algissalys.com/how-to/sipml ... isk-server

https://wiki.asterisk.org/wiki/display/ ... ing+SIPML5

Susurros
Posts: 17
Joined: Tue Oct 31, 2017 12:52 am

Re: Portero automático

Sun Jan 07, 2018 1:42 pm

Lo primero de todo es darte las gracias por las respuestas.
Buscando y dando más vueltas por la red me he encontrado con un tutorial que hace exactamente lo que quiero, en teoría.http://raspimods.blogspot.com.es/2012/0 ... ta-de.html Ahora tengo unos problemas, como por ejemplo la cantidad de fallos que me ha dado asterisk al instalarse xD. Según he entendido, asterisk dispone de la herramienta ALSA, que te permite utilizar los dispositivos conectados a la RPI (en este caso una tarjeta de sonido conectada al micrófono y altavoz del telefonillo) y mediante un par de scripts hacer que todo funcione.
Como la instalación de asterisk me ha dado tantos problemas he decidido instalar raspbx, una versión de raspbian sin interfaz de escritorio que ya trae instalado asterisk y freepbx (aunque este último no tenga intención de utilizarlo). El archivo alsa.conf que se nombra en el tutorial está exactamente igual mi rapsberry, pero si hablamos del archivo extensions.conf cambia la cosa. Supongo que será porque al descargar raspbx ya vendrá algo configurado por defecto, ya que en el tutorial te dice que en ese archivo debes de poner estas cinco líneas de código

Code: Select all

[console]
exten => s,1,SET(CALLERID(name)=DOOR)
same => n,Set(__DYNAMIC_FEATURES=toggle)
same => n,Dial(SIP/5001)
same => n,hangup()
Frente a las más de cien que tiene el archivo que tengo yo. No se si sustituirlas todas por estas cinco sólo o acoplarlo en algún sitio, que opinan?
Por otra parte, no se dónde se colocan los scripts que vienen en los siguientes pasos del tutorial.

raspdroid
Posts: 1533
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: Portero automático

Sun Jan 07, 2018 8:39 pm

FreePBX es una GUI para controlar Asterisk de manera más sencilla es posible que por ello esté algo diferente que con Asterisk a pelo. Desde FreePBX puedes programar el dial-plan.

Más bien Asterisk hace uso de ALSA, ALSA es un framework para el sonido en linux que es parte del kernel.

Susurros
Posts: 17
Joined: Tue Oct 31, 2017 12:52 am

Re: Portero automático

Sun Jan 14, 2018 3:16 pm

Hasta el momento he conseguido realizar una llamada entre unos cascos conectados por usb y un smartphone. Pero la calidad de la misma es bastante baja, y creo que esto se debe a la tasa de muestreo de la tarjeta de audio usb. Me explico: si conecto los cascos por usb y pongo algo de música en la raspberry se escucha perfectamente. Ahora bien, para realizar la llamada modifico el alsa.conf de la siguiente manera:

Code: Select all

;
[general]
;
; Automatically answer incoming calls on the console?  Choose yes if
; for example you want to use this as an intercom.
;
autoanswer=yes
;
; Default context (is overridden with @context syntax)
;
context=console
;
; Default extension to call
;
extension=s
;
; Default language
;
language=en
; To set which ALSA device to use, change this parameter
[u]input_device=hw:1,0
output_device=hw:1,0[/u]

;
; Default mute state (can also be toggled via CLI)
mute=false

;
; If enabled, no audio capture device will be opened.  This is useful on
; systems where there will be no return audio path, such as overhead pagers.
noaudiocapture=false

; ----------------------------- JITTER BUFFER CONFIGURATION --------------------------
; jbenable = yes              ; Enables the use of a jitterbuffer on the receiving side of an
                              ; ALSA channel. Defaults to "no". An enabled jitterbuffer will
                              ; be used only if the sending side can create and the receiving
                              ; side can not accept jitter. The ALSA channel can't accept jitter,
                              ; thus an enabled jitterbuffer on the receive ALSA side will always
                              ; be used if the sending side can create jitter.

; jbmaxsize = 200             ; Max length of the jitterbuffer in milliseconds.

; jbresyncthreshold = 1000    ; Jump in the frame timestamps over which the jitterbuffer is

                              ; resynchronized. Useful to improve the quality of the voice, with
                              ; big jumps in/broken timestamps, usually sent from exotic devices
                              ; and programs. Defaults to 1000.

; jbimpl = fixed              ; Jitterbuffer implementation, used on the receiving side of a SIP
                              ; channel. Two implementations are currently available - "fixed"
                              ; (with size always equals to jbmax-size) and "adaptive" (with
                              ; variable size, actually the new jb of IAX2). Defaults to fixed.

; jbtargetextra = 40          ; This option only affects the jb when 'jbimpl = adaptive' is set.
                              ; The option represents the number of milliseconds by which the new
                              ; jitter buffer will pad its size. the default is 40, so without
                              ; modification, the new jitter buffer will set its size to the jitter
                              ; value plus 40 milliseconds. increasing this value may help if your
                              ; network normally has low jitter, but occasionally has spikes.

; jblog = no                  ; Enables jitterbuffer frame logging. Defaults to "no".
; ----------------------------------------------------------------------------------


De manera que he seleccionado el dispositivo usb (card 1, device 0) para realizar la llamada VoIP. Los mismos cascos conectados por usb que para escuchar música funcionan perfectamente y los reconoce la raspberry. Pero cuando realizo la llamada y entro a la consola de asterisk me encuentro con el siguiente mensaje:

Code: Select all

 WARNING[1207][C-00000007]: chan_alsa.c:569 alsa_indicate: Don't know how to display condition 26 on ALSA/hw:1,0
Es como que al realizar la llamada no reconoce la tarjeta de audio USB de los cascos, pero se que funciona porque puedo escuchar música por ella en la misma raspberry. Me pregunto si se podrá forzar alguna tasa de muestreo para solucionar este problema u otra manera de solventarlo.
Un saludo

Return to “Español”

Who is online

Users browsing this forum: No registered users and 5 guests