Caravantes
11/03/13, 04:27:39
[Editado 02-05-2016: El compañero WillyWeb ha construido y publicado un Sistema de grabación de llamadas en el siguiente post:
http://www.htcmania.com/showpost.php?p=19015153&postcount=8
Fin del editado]
No consigo grabar las llamadas a pesar de que Tasker parece tener herramientas idóneas para hacerlo con facilidad.
Hasta hace poco yo tenía un HTC Desiré (de primera generación, de hace tres años). Usaba una app llamada Total Recall Call Recorder que me permitía grabar las llamadas telefónicas. Solo grababa por el micro, o sea que yo debía activar el altavoz si quería que también quedase grabada la voz de mi interlocutor. Eso era suficiente para mí, estaba contento con ese sistema.
Ahora estoy estrenando un Nexus 4 y esa app no funciona, genera archivos de cero bytes que -lógicamente- solo sirven para estorbar. He pensado que con Tasker yo mismo podría construir el tinglado para grabar las llamadas.
La idea es hacerme dos perfiles, uno para llamadas salientes y otro para llamadas entrantes. Los hago separados porque en el nombre del fichero quiero especificar si la llamada es saliente o entrante y también porque los nombre de algunas variables son distintos para unas y otras llamadas. Además, el nombre del fichero debe especificar cuándo se hizo la llamada y cual era el numero de teléfono. He empezado por las llamadas salientes, del siguiente modo.
He elegido el contexto de estado: LLAMADA, tipo saliente.
La tarea es la siguiente:
1 Establecer variable, %fecha a %DATE (guardo la fecha)
2 Separar variable, %fecha, separador - (uso el guión para separar día mes y año)
3 Establecer variable, %file a /sdcard/Grabaciones/... (la carpeta Grabaciones fue creada previamente para guardar los ficheros de las grabaciones. Igualmente podría poner /storage/emulated/0/Grabaciones . He probado ambas especificaciones y las dos funcionan bien en mi smartphone)
3 Establecer variable, %file a /sdcard/Grabaciones/%fecha3-%fecha2-%fecha1... (el nombre de archivo comienza con año-mes-día; de esta forma la ordenación por nombres coincidirá con la ordenación cronológica)
3 Establecer variable, %file a /sdcard/Grabaciones/%fecha3-%fecha2-%fecha1 &TIME %TIMES (se añade la hora y los minutos. Pero además necesito los segundos, que no están en la variable %TIME, y por eso añado %TIMES que es un número entero correspondiente a los segundos [transcurridos desde 1970, creo]; esto servirá para poder hacer varias llamadas en un mismo minuto y que no coincidan sus nombres de archivo)
4 Establecer variable, %file a %file out %CONUM %CONAME (al nombre de archivo le añado "out" para indicar que es una llamada saliente, y también el número llamado y el nombre asociado de ese contacto)
5 Notificación. Titulo: GRABANDO %file
Esta notificación me indica que todo parece ir bien hasta aquí. El identificador del archivo se construye correctamente, por ejemplo
/sdcard/Grabaciones/2013-03-11 02.42 1362966168 666555444 Mariano
6 Grabar audio. Archivo: %file. Fuente: por defecto. Tamaño máximo: ninguno. Codec AMR Narrowband. Formato: MP4.
Fin de la tarea de entrada. Como habréis visto no es nada complicada. Ahora la tarea de salida, más sencilla todavía:
1 Detener grabación audio.
2 Notificación. Título: FIN GRABACIÓN %TIME.
El problema es que las dos tareas me funcionan perfectamente si las abro y las lanzo yo manualmente. Primero lanzo la tarea de entrada, luego recito aquello de "con diez cañones por banda, viento en popa a toda vela..." y finalmente lanzo la tarea de salida. Graba muy bien por el micro, se graba mi voz y el ruido ambiental que hubiera. Ahora bien, si cierro tasker con ese perfil activado, es de suponer que grabará cuando haya una llamada saliente, pero ocurre que en esa situación la grabación no funciona bien, graba silencio total aunque yo esté recitando o haya ruido ambiental. He hecho otra prueba para ver qué pasa si mezclo ambas situaciones: grabando sin llamada real y metiendo luego la llamada a mitad de la grabación: desactivo el perfil, cierro Tasker para que asuma ese cambio, vuelvo a abrir Tasker, abro la tarea de entrada y la lanzo manualmente para iniciar la grabación, recito un par de versos, luego hago la llamada, hablo con Mariano y le recito otro par de versos, cuelgo la llamada, digo los dos últimos versos (solo aprendí seis) y finalmente lanzo la tarea de salida para cerrar la grabación. En esa situación se graban los dos primeros versos. En cuanto empieza la llamada es como si se bloquease el micro, a partir la grabación solo contiene silencio a pesar de que la otra persona me ha escuchado; tampoco se graba nada cuando ha finalizado la llamada.
Añado algunos comentarios laterales: La acción Grabar-audio permite especificar varias fuentes de grabación:
- Por defecto
- Micrófono
- Llamada saliente
- Llamada entrante
- Llamada
Las dos primeras dan el mismo resultado porque ambas utilizan el micrófono. Las tres últimas dan un fallo durante la ejecución, Tasker emite un mensaje de error "Fuente de audio no soportado" y no inicia la grabación.
Sospecho que el problema sea profundo. He leído que en algunos países es ilegal que las personas particulares graben sus conversaciones telefónicas, y quizá por eso el fabricante del terminal o del sistema ha tomado la decisión de bloquear la grabación cuando hay una llamada, incluso aunque se esté grabando por el micrófono.
¿Se os ocurre algo? Agradeceré cualquier información relevante relacionada con este tema. Si sabéis de alguna solución utilizando otra app, pues también me vale.
Tal vez alguno de vosotros quiera aprovechar este perfil que he descrito, supongo que funcionará bien en otros teléfonos. Si hacéis la prueba ya me contáis aquí cómo os ha ido. Una vez que lo tengáis hecho, si funciona, podéis clonarlo para modificar el duplicado de forma que grabe las llamadas entrantes, solo hay que hacer algunos cambios sencillos:
En el contexto, llamada de tipo entrante.
4 Establecer variable, %file a %file in- %CNUM %CNAME (el indicador "in-" señala las llamadas entrantes, los nombres de variables también cambian).
Creo que el resto de la tarea sería igual, solo cambia esa acción 4.
Saludos.
http://www.htcmania.com/showpost.php?p=19015153&postcount=8
Fin del editado]
No consigo grabar las llamadas a pesar de que Tasker parece tener herramientas idóneas para hacerlo con facilidad.
Hasta hace poco yo tenía un HTC Desiré (de primera generación, de hace tres años). Usaba una app llamada Total Recall Call Recorder que me permitía grabar las llamadas telefónicas. Solo grababa por el micro, o sea que yo debía activar el altavoz si quería que también quedase grabada la voz de mi interlocutor. Eso era suficiente para mí, estaba contento con ese sistema.
Ahora estoy estrenando un Nexus 4 y esa app no funciona, genera archivos de cero bytes que -lógicamente- solo sirven para estorbar. He pensado que con Tasker yo mismo podría construir el tinglado para grabar las llamadas.
La idea es hacerme dos perfiles, uno para llamadas salientes y otro para llamadas entrantes. Los hago separados porque en el nombre del fichero quiero especificar si la llamada es saliente o entrante y también porque los nombre de algunas variables son distintos para unas y otras llamadas. Además, el nombre del fichero debe especificar cuándo se hizo la llamada y cual era el numero de teléfono. He empezado por las llamadas salientes, del siguiente modo.
He elegido el contexto de estado: LLAMADA, tipo saliente.
La tarea es la siguiente:
1 Establecer variable, %fecha a %DATE (guardo la fecha)
2 Separar variable, %fecha, separador - (uso el guión para separar día mes y año)
3 Establecer variable, %file a /sdcard/Grabaciones/... (la carpeta Grabaciones fue creada previamente para guardar los ficheros de las grabaciones. Igualmente podría poner /storage/emulated/0/Grabaciones . He probado ambas especificaciones y las dos funcionan bien en mi smartphone)
3 Establecer variable, %file a /sdcard/Grabaciones/%fecha3-%fecha2-%fecha1... (el nombre de archivo comienza con año-mes-día; de esta forma la ordenación por nombres coincidirá con la ordenación cronológica)
3 Establecer variable, %file a /sdcard/Grabaciones/%fecha3-%fecha2-%fecha1 &TIME %TIMES (se añade la hora y los minutos. Pero además necesito los segundos, que no están en la variable %TIME, y por eso añado %TIMES que es un número entero correspondiente a los segundos [transcurridos desde 1970, creo]; esto servirá para poder hacer varias llamadas en un mismo minuto y que no coincidan sus nombres de archivo)
4 Establecer variable, %file a %file out %CONUM %CONAME (al nombre de archivo le añado "out" para indicar que es una llamada saliente, y también el número llamado y el nombre asociado de ese contacto)
5 Notificación. Titulo: GRABANDO %file
Esta notificación me indica que todo parece ir bien hasta aquí. El identificador del archivo se construye correctamente, por ejemplo
/sdcard/Grabaciones/2013-03-11 02.42 1362966168 666555444 Mariano
6 Grabar audio. Archivo: %file. Fuente: por defecto. Tamaño máximo: ninguno. Codec AMR Narrowband. Formato: MP4.
Fin de la tarea de entrada. Como habréis visto no es nada complicada. Ahora la tarea de salida, más sencilla todavía:
1 Detener grabación audio.
2 Notificación. Título: FIN GRABACIÓN %TIME.
El problema es que las dos tareas me funcionan perfectamente si las abro y las lanzo yo manualmente. Primero lanzo la tarea de entrada, luego recito aquello de "con diez cañones por banda, viento en popa a toda vela..." y finalmente lanzo la tarea de salida. Graba muy bien por el micro, se graba mi voz y el ruido ambiental que hubiera. Ahora bien, si cierro tasker con ese perfil activado, es de suponer que grabará cuando haya una llamada saliente, pero ocurre que en esa situación la grabación no funciona bien, graba silencio total aunque yo esté recitando o haya ruido ambiental. He hecho otra prueba para ver qué pasa si mezclo ambas situaciones: grabando sin llamada real y metiendo luego la llamada a mitad de la grabación: desactivo el perfil, cierro Tasker para que asuma ese cambio, vuelvo a abrir Tasker, abro la tarea de entrada y la lanzo manualmente para iniciar la grabación, recito un par de versos, luego hago la llamada, hablo con Mariano y le recito otro par de versos, cuelgo la llamada, digo los dos últimos versos (solo aprendí seis) y finalmente lanzo la tarea de salida para cerrar la grabación. En esa situación se graban los dos primeros versos. En cuanto empieza la llamada es como si se bloquease el micro, a partir la grabación solo contiene silencio a pesar de que la otra persona me ha escuchado; tampoco se graba nada cuando ha finalizado la llamada.
Añado algunos comentarios laterales: La acción Grabar-audio permite especificar varias fuentes de grabación:
- Por defecto
- Micrófono
- Llamada saliente
- Llamada entrante
- Llamada
Las dos primeras dan el mismo resultado porque ambas utilizan el micrófono. Las tres últimas dan un fallo durante la ejecución, Tasker emite un mensaje de error "Fuente de audio no soportado" y no inicia la grabación.
Sospecho que el problema sea profundo. He leído que en algunos países es ilegal que las personas particulares graben sus conversaciones telefónicas, y quizá por eso el fabricante del terminal o del sistema ha tomado la decisión de bloquear la grabación cuando hay una llamada, incluso aunque se esté grabando por el micrófono.
¿Se os ocurre algo? Agradeceré cualquier información relevante relacionada con este tema. Si sabéis de alguna solución utilizando otra app, pues también me vale.
Tal vez alguno de vosotros quiera aprovechar este perfil que he descrito, supongo que funcionará bien en otros teléfonos. Si hacéis la prueba ya me contáis aquí cómo os ha ido. Una vez que lo tengáis hecho, si funciona, podéis clonarlo para modificar el duplicado de forma que grabe las llamadas entrantes, solo hay que hacer algunos cambios sencillos:
En el contexto, llamada de tipo entrante.
4 Establecer variable, %file a %file in- %CNUM %CNAME (el indicador "in-" señala las llamadas entrantes, los nombres de variables también cambian).
Creo que el resto de la tarea sería igual, solo cambia esa acción 4.
Saludos.