?>/script>'; } ?> VoIP en routers de yacom arv4518 y arv7518. Widgets Magazine

Autor Tema: VoIP en routers de yacom arv4518 y arv7518.  (Leído 81487 veces)

0 Usuarios y 1 Visitante están viendo este tema.

pelocho

  • Visitante
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #140 en: 10-11-2014, 16:52 (Lunes) »
Se me ha olvidado decir qe la wifi y el ADSL también funcionan.

pelocho

  • Visitante
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #141 en: 16-11-2014, 20:39 (Domingo) »
Hola a todos.

He creado un parche para solucionar un problema en las llamadas tanto en el router 4518 como en el 7518, tanto en attitude adjustment como en barrier breaker. El problema se presenta cuando usas Asterisk, tienes dos teléfonos conectados al router, estás hablando con alguien por uno de ellos y alguien te llama. En vez de sonar sólo por el teléfono que está ocioso, se te corta la llamada del primer teléfono.

Para solucionarlo, hay que editar el fichero chan_lantiq.c antes de compilar y añadir esto en la línea 760 (en la función ast_lantiq_requester, después de la línea que pone "port_id -= 1;"):

   /* check if port is in use */
   struct lantiq_pvt *pvt = &iflist[port_id];
   if (pvt->owner != NULL){
      ast_verbose(VERBOSE_PREFIX_3 "Request to create new channel on port_id %i, but port is in use. Channel not created.\n", port_id);
      ast_verbose(VERBOSE_PREFIX_3 "Port state:%s.\n", state_string(pvt->channel_state));
      *cause = AST_CAUSE_USER_BUSY;
      ast_mutex_unlock(&iflock);
      return NULL;
   }

El problema radicaba en que, cuando entraba una nueva llamada, no se comprobaba si había una conversación en curso antes de crear una nueva conversación en el mismo puerto.

Estoy probándolo y parece que va bien. Cuando pasen unos días lo enviaré a OpenWrt para que lo añadan y todo el mundo pueda verse beneficiado.

Un saludo.
« Última modificación: 16-11-2014, 20:40 (Domingo) por pelocho »

pelocho

  • Visitante
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #142 en: 16-11-2014, 21:08 (Domingo) »
De hecho, estoy pensando que, en teoría, el problema no sólo se presentaría si tienes dos teléfonos, sino que también ocurriría cuando tienes un sólo teléfono.

pelocho

  • Visitante
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #143 en: 21-01-2015, 19:14 (Miércoles) »
Hola a todos.

Ya he solucionado todos los problemas que tenía con Asterisk cuando usaba los teléfonos tradicionales. Todos los problemas los originaba el paquete  “asterisk18-chan-lantiq”. Dicho paquete se genera a partir del fichero “chan_lantiq.c” que se encuentra en las siguientes rutas:

- En Attitude Adjustment está en la ruta "feeds/packages/net/asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c"
- En Barrier Breaker y en trunk está en la ruta "feeds/telephony/net/asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c"

El contenido del fichero no ha variado desde Attitude Adjustment, así que todos los problemas se presentan tanto en AA, como en BB, como en trunk. El contenido del fichero también es el mismo tanto si compilamos para el router 4518 como para el 7518.

Hace tiempo que envié los primeros parches a un mantenedor de OpenWRT, pero todavía no los ha probado porque está muy liado con otros temas (y tiene pinta de que tardará todavía muchísimo). Así que, si queréis corregir los problemas, tenéis que modificar el contenido del citado fichero vosotros mismos antes de compilar. Para que os sea más fácil, os paso el fichero chan_lantiq.c que yo uso. Podéis descargarlo de aquí:

http://www.mediafire.com/download/5cz1qa1xl3b702d/chan_lantiq.zip

Después de ejecutar el comando ./scripts/feeds/update –a, se os habrá creado el fichero en la ruta que os he indicado arriba. Lo sustituís por el mío y proseguís con el proceso de compilación.

Estos son los problemas que corrigen mis parches:

1. Cuando estamos en conversación con alguien, si una tercera persona nos llama, se corta la conversación que estábamos manteniendo.

2. Cuando llamamos a alguien, internamente Asterisk le asigna siempre el identificador "TAPI/1" a esa llamada, no teniendo en cuenta que podemos tener dos teléfonos conectados al router, por lo que se dificulta muchísimo la diagnosis de problemas y el seguimiento de las llamadas en la consola y en el fichero de log. Modifico el código fuente para que asigne el identificador TAPI/1 cuando iniciemos conversación en el puerto FXS 0 del router, y TAPI/2 cuando iniciemos conversación en el puerto FXS 1. Este el comportamiento que ya venía predefinido cuando en vez de hacer nosotros las llamadas somos los que las recibimos.

3.Cuando somos nosotros los que finalizamos una llamada, no se da orden al driver VoIP para que se quede en stand-by, por lo que sigue intentando codificar tráfico de voz y enviarlo después de finalizada la llamada, cargando a la CPU permanente de forma innecesaria. Si tenemos en cuenta que podemos tener dos teléfonos conectados al router, la carga de CPU desperdiciada se multiplica por dos, produciendo cortes de voz en el tráfico de subida que impiden que el otro participante de la conversación nos oiga bien. Si ves una traza en dmesg que dice "Upstream packet fifo full[ch(0)]!", incluso en horas en las que nos estabas usando el teléfono, es un síntoma inequívoco de que estás sufriendo el problema.

4.En el log de Asterisk a veces aparece la traza "IFX_TAPI_TONE_LOCAL_PLAY ioctl failed". Esto se debe a que en ocasiones se da orden al driver de emitir un tono que ya está siendo reproducido, y el driver se queja de ello.

5.He incluido otras mejoras, como por ejemplo que tengamos un límite de 4 segundos por cada dígito que marcamos al llamar. Por defecto este límite está fijado en dos segundos y a veces, cuando no te sabes el teléfono de memoria y estás leyéndolo de otro sitio,  no te da tiempo a marcar el siguiente dígito y tienes que volver a empezar desde el principio.

Espero que os sirva de ayuda.

Pido a los moderadores que modifiquen el primer post de este hilo con un resumen de todo lo que hemos avanzado en el tema de la VoIP con estos routers.

Un saludo.
« Última modificación: 28-01-2015, 18:03 (Miércoles) por pelocho »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2247
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #144 en: 21-01-2015, 20:21 (Miércoles) »
@pelocho

Muy bueno. Seguro que a más de uno le viene esto de perlas...  >:( >:( >:(

pelocho

  • Visitante
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #145 en: 28-01-2015, 18:15 (Miércoles) »
Por cierto, en el fichero /etc/asterisk/lantiq.conf no pongáis el parámetro "echocancel" con valor "es". Tanto si usáis ese valor, como si usáis "off", la persona con la que habláis escuchará su propio eco. Poned, por ejemplo, el valor "nlec" o "nees".

Un saludo.

peperfus

  • Visitante
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #146 en: 01-03-2016, 12:47 (Martes) »
Hola.

Genial todo el trabajazo que os estáis currando.

¿Alguien podría poner una versión compilada con los parches de pelocho añadidos? arv4518 si puede ser, pero si es de los dos, pues mejor.

Gracias.

Belaix

  • Visitante
Re: VoIP en routers de yacom arv4518 y arv7518.
« Respuesta #147 en: 23-04-2016, 23:28 (Sábado) »
Lo mismo digo con el arv718 R01A Me he pateado (creo) todo el foro poniéndolo patas arriba... pero nada. Los links que parecía que podrían ayudar ya estan caidos.

No he logrado instalar asterisk18 en la imagen oficial de 12.09

Tampoco logré compilar por mi mismo una compilación para este router, sin que me de error.

Alguna alma caritativa podría poner un link valido o algo de luz sobre el tema?

Gracias!

« Última modificación: 23-04-2016, 23:32 (Sábado) por Belaix »