Tasker to auto record incoming or outgoing call
most of time, i was thinking of tasker can do the job like callrecorder? if yes, how to do?
well, after done some homework, i have figured out the method below to share with you guys. via this method, tasker is able to auto record incoming
call and outgoing call, unwanted callee and unreached call will be excluded from recording.
before everything, you should create 1 folder named with english characters, eg. Voice, then create 3 separate folders inside this folder, named it as "Incoming", "Outgoing" and "Temp".
NB.
if you are currently using some kind of caller location app, please make sure if it would change the call logs combined phone number and location info with symbol like angle brackets? if yes, tasker would fail to create the new file for outgoing call recording.
Profile 1: (incoming call)
Context 1: Event- Phone- Offhook
Context 2: State: Incoming Call
Task:
Action 1: variable-Variable Set [ Name:%Oncall To:0]
Action 2: media-Record Audio [ File: Voice/Incoming/%CNAME_%CDATE_%CTIME Source: incoming Call/Mic, Code: arm narrowband, format: raw_arm ]
Action 3: alert-Notify [Title:Recording Call Icon:(any icon)]
PS. you may put action 2 and 3 together as a separate task, then make it as a pop up alert positive button right after action 1, asking if you wanna
record.
Profile 2: (outgoing Temp)
Context: State: outgoing Call
Task:
Action 1: task-If, %CONUM !~ XXXXX # XXXX stands for the phone number which you don't wish to record
Action 2: variable-Variable Set [ Name:%Oncall To:1]
Action 3: media-Record Audio [ File: Voice/Temp/ Source:ouggoing Call/Mic Code: arm narrowband, format: raw_arm ]
Action 4: alert-Notify [Title:Recording Call Icon:(any icon)]
PS. you may put action 2 and 3 together as a separate task, then make it as a pop up alert positive button right after action 1, asking if you wanna
record.
Profile 3: (stop recording)
Context: Event-phone-Phone Idle
Task:
Action 1: media-Record Audio Stop
Action 2: alert-Notify Cancel, title: Recording Call
Action 3: task-If %Oncall ~ 1
Action 4: script-run shell, command:
sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db "select duration from calls where type <= 2 order by date desc limit 1;"
use root checked, store result in %COUNT
# this step is very important, cause we may know, tasker even sl4a script could not detect if the callee has picked up the phone. if duration is 0, i guess you don't wish to waste storage to record the ringtone, right? this shell command would extract the value of duration for the last phone call
you have made.
Action 5: File--Move [ From: Voice/Temp/.amr To: Voice/Outgoing/%CONAME_%CODATE_%COTIME.amr If, %COUNT > 0 ]
# Based on action 4 run result, tasker may detect and exclude the unreached outgoing phone call. so it would not waste storage space at all.
cause the recording would just start right from the moment while dialing.
Action 6: task-end if
Action 7: variable-variable clear, name: %Oncall
## duration counting via sqlit 3 command
if we look into the calllogs within android default call database, we will see some significant columns, which are very useful for us to get this job done.
type: (numberic)
3: incoming missed call, 2: outgoing call(reached or unreached) 1: incoming call(offhook)
duration: (seconds)
order by date desc limit 1: this is to identify and select the last one in record.
Tasker to auto record incoming or outgoing call的更多相关文章
- Eclipse MAT: Understand Incoming and Outgoing References
引用:http://xmlandmore.blogspot.hk/2014/01/eclipse-mat-understand-incoming-and.html?utm_source=tuicool ...
- Go Concurrency Patterns: Context At Google, we require that Go programmers pass a Context parameter as the first argument to every function on the call path between incoming and outgoing requests.
小结: 1. Background is the root of any Context tree; it is never canceled: 2. https://blog.golang. ...
- Tasker to proximity screen off
If you are using proximity screen off pro or smart screen off, you may know how convenient it is to ...
- How to read out WhatsApp messages with Tasker and react on their content in real time
http://technologyworkroom.blogspot.sg/2013/05/tasker-how-to-read-out-whatsapp.html Tasker can read o ...
- Video for Linux Two API Specification Revision 2.6.32【转】
转自:https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html Video for ...
- curl 使用手册
curl.1 the man page Related: Manual FAQ HTTP Scripting NAME curl - transfer a URL SYNOPSIS curl [opt ...
- 命令行工具--curl
目录 命令:curl 一.简介 二.使用案例 1.基本用法 2.保存访问的网页 3.测试网页返回值 4.指定proxy服务器以及其端口 5.cookie 6.模仿浏览器 7.伪造referer(盗链) ...
- pppd - 点对点协议守护进程
总览 SYNOPSIS pppd [ tty_name ] [ speed ] [ options ] 描述 点对点协议 (PPP) 提供一种在点对点串列线路上传输资料流 (datagrams)的方法 ...
- JDWP Agent
JDWP Agent Implementation Description Revision History Disclaimer 1. About this Document 1.1 Purpose ...
随机推荐
- python基础-类的反射
1)反射是通过字符串方式映射内存中的对象. python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr, 改四个函数分别用于对对象内部执行:检查是 ...
- java基础43 IO流技术(输入字节流/缓冲输入字节流)
通过File对象可以读取文件或者文件夹的属性数据,如果要读取文件的内容数据,那么我们就要使用IO技术. 一.输入字节流 输入字节流的体系: -------| InputStream:所有输入字节流的 ...
- 程序设计分层思想和DAO设计模式的开发
无论是一个应用程序项目还是一个Web项目,我们都可以按照分层思想进行程序设计.对于分层,当下最流行划分方式是:表现层+控制层+业务层+数据层.其中,业务层和数据层被统称为后台业务层,而表现层和控制层属 ...
- django 建立一个简单的应用
本人的用的版本是python 2.7.3和django 1.10.5,Windows10系统 1.首先通过命令建立项目和app 找到django的安装路径,我的路径是:C:\Python27\Lib\ ...
- [C++]返回最值元素
1 priority_queue C++中优先队列是一种特殊的队列,能够返回队列中优先级最大或者最小的元素,其内部是由堆实现的,个人认为这种方式使用更加直观. 1.1 返回vector中的最值元素 # ...
- day9作业
题目:简单主机批量管理工具 需求: 1.主机分组: 2.登录后显示主机分组,选择分组后查看主机列表: 3.可批量执行命令.发送文件,结果实时返回: 4.主机用户名密码可以不同.
- 站点的安全防范都是后端的职责?非也,Web前端安全同样不可忽视
前言 随着网络的快速普及,网络安全问题的受害者不再只是政府.企业等集体,每一个接触网络的普通人都有可能成为网络攻击的受害者.随着网络的普及,黑客进行网络攻击的手段越来也多,越来越复杂.以网站的攻击为例 ...
- PyQt5调入数据库数据在表格中显示
数据库为Postgresql import sys from form import Ui_Form from PyQt5.Qt import QWidget, QApplication,QTable ...
- 三 oracle 用户管理一
一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 identified by 密码; ...
- redhat重置密码
当忘记虚拟机密码时怎么办? 1.启动虚拟机,当虚拟机显示输入enter启动时输入e 2.再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ...