|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Grabar las llamadas
[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...53&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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 02/05/16 a las 23:28:04. |
Los siguientes 4 usuarios han agradecido a Caravantes su comentario: | ||
|
#2
|
||||
|
||||
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. ![]() Yo siempre he tenido en mis terminales la posibilidad de grabación de llamadas porque en casi todas las roms cocinadas se implementa este sistema. Lo único que se me ocurre es que revises este hilo: http://www.htcmania.com/showthread.php?t=517391. En principio es para el Note 2, que es el que yo uso ahora y por tanto ahí lo he encontrado. No obstante, al parecer, el framework debe ser bastante general (de hecho hay muchas roms cocinadas para muchas marcas que lo implementan y se puede encontrar en xda general), lo que ya no sé es si te valdrá para el Nexus y si utilizarán el mismo sistema. A lo mejor si buscas algo con esa pista, puedas encontrar algo al respecto. Espero que te sirva de algo. Saludos |
Gracias de parte de: | ||
#3
|
||||
|
||||
Después de unos días investigando el tema, me confirmo en mi conclusión de que algunos smartphones como el Nexus 4 están específicamente diseñados para que no se puedan grabar las llamadas, o al menos para dificultarlo. Probé cuatro apps que sirven para eso, y ninguna funcionaba. Pero seguí buscando y al final pude encontrar una app que sí podía grabar las llamadas. Explico los detalles en el foro del Nexus 4.
http://www.htcmania.com/showthread.p...30#post7964630 En paralelo a eso también he hecho algunas mejoras para el perfil correspondiente, que vuelvo a poner. Aunque yo no lo vaya a utilizar por las limitaciones indicadas, puede que le sirva a otros compañeros. Destaco en negrita las modificaciones posteriores con las que he corregido el post original escrito anteriormente. Desde mi punto de vista, la mayor dificultad de estos perfiles es construir el nombre de archivo, que debe referenciar la fecha y la hora, además del número de teléfono y del nombre del contacto en caso de que exista. 2013-03-11 02.42.13 666555444 Mariano En lo relativo a la fecha y la hora, el problema está en que la variable %TIME solo nos da la hora y los minutos. Pero en un mismo minuto puede haber varias llamadas y hay que distinguirlas para que no se solapen los nombres de archivo. La variable %TIMES puede ayudarnos en esto, puesto que es un número que indica los segundos. Pero es un número muy lago (10 dígitos) que indica los segundos transcurridos desde 1970, creo, y aquí solo necesitamos dos dígitos, los últimos de esa serie de 10 dígitos. Uso un algoritmo matemático sencillo para extraer esos dos últimos digitos y despreciar el resto. Perfil SALIENTE Contexto de estado: LLAMADA, tipo saliente. Tarea de entrada: 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 %segundos a %TIMES - (60*floor(%TIMES/60)) 4 Establecer variable %segundos a 0%segundos si %segundos < 10 5 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) 5 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 de archivo coincidirá con la ordenación cronológica) 5 Establecer variable, %file a /sdcard/Grabaciones/%fecha3-%fecha2-%fecha1 &TIME .%segundos (se añade la hora y los minutos y los segundos) 6 Esperar 1 segundo (creo que si no se mete esta espera puede ocurrir que las variables %CONUM y %CONAME todavía tengan los datos de la llamada anterior. Prefiero perderme el primer segundo de la llamada y que los datos sean correctos. Hay que comprobar que esto funcione correctamente en la práctica). 7 Establecer variable, %file a %file out %CONUM (al nombre de archivo le añado "out" para indicar que es una llamada saliente, y también el número llamado) 8 Establecer variable, %file a %file %CONAME si %CONUM no-coincide-con %CONAME (al nombre de archivo le añado el nombre asociado de ese contacto, pero solo en caso de que exista ese nombre) 9 Notificación. Titulo: GRABANDO %file (notificación para comprobar el nombre de archivo, una vez probado se puede quitar esta acción) 10 Grabar audio. Archivo: %file. Fuente: por defecto. Tamaño máximo: ninguno. Codec AMR Narrowband. Formato: MP4. Tarea de salida: 1 Detener grabación audio. 2 Notificación. Título: FIN GRABACIÓN %TIME. El perfil para llamadas entrantes es muy similar. Solo hay que cambiar las cosas indicadas en rojo. Para las llamadas entrantes, las variables son %CNUM y %CNAME.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 18/01/14 a las 00:50:43. |
Los siguientes 2 usuarios han agradecido a Caravantes su comentario: | ||
#4
|
||||
|
||||
He editado el mensaje anterior para introducir una modificación en la tarea descrita.
He sustitudio lo que antes había en la acción 3 Establecer variable, %segundos a %TIMES - (100*floor(%TIMES/100)) por estas otras dos acciones: - Establecer variable %segundos a %TIMES - (60*floor(%TIMES/60)) - Establecer variable %segundos a 0%segundos si %segundos < 10 De esa forma obtenemos los segundos en el mismo formato y valor que figuran en un reloj digital. Esto se explica de forma más amplia en los mensajes quinto y séptimo del hilo siguiente http://www.htcmania.com/showthread.php?t=571609
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 17/05/13 a las 18:10:34. |
Los siguientes 2 usuarios han agradecido a Caravantes su comentario: | ||
#5
|
||||
|
||||
Buen truco de "esperar" para que la variable coname tenga el valor correcto, a mi me pasaba ll mismo.
Gracias y saludos
__________________
|
Gracias de parte de: | ||
![]() |
![]() |
||||||
|