autohotkey php,Autohotkey+php实现免浏览器听录音

0916cba8b6c34101c45420118a329131.png

环境说明:

Elastix 2.5

ln -s /var/spool/asterisk/monitor /var/www/html/

接口文件(php):

$con=mysql_connect("localhost","root","passwd");

if(!$con) echo "没有连接成功!";

mysql_select_db("asteriskcdrdb", $con);

mysql_query("SET NAMES UTF8");

if(isset($_GET["phone"])){

$phone=$_GET["phone"];

if(isset($_GET["date"])){

$calldate=$_GET["date"];

$q = "SELECT * FROM `cdr` WHERE `dst`='$phone' and cast(`calldate` as date)='$calldate' order by `calldate` desc limit 100"; //此处注意dst和src

}else{

$q = "SELECT * FROM `cdr` WHERE `dst`='$phone' order by `calldate` desc limit 100";

}

$result = mysql_query($q, $con);

if(mysql_num_rows($result)>0){

while($obj=mysql_fetch_object($result)){

$obj->src;

$obj->dst;

$obj->channel;

$obj->billsec;

$obj->calldate;

$recordingfile = $obj->recordingfile;

if($recordingfile){

$a = explode("-",$recordingfile);;

$subdir = substr($a[3],0,4)."/".substr($a[3],4,2)."/".substr($a[3],6,2);

$uri = "/monitor/$subdir/$recordingfile";

}else{

$uri='';

}

echo $obj->src.",".$obj->dst.",".$obj->channel.",".$obj->dstchannel.",".$obj->disposition.",".$obj->billsec.",".$obj->calldate.",".$uri."\n";

}

}

}

mysql_free_result($result);

mysql_close($con);

?>

客户端程序(Autohotkey):

FileCreateDir, %A_ScriptDir%\sox

FileCreateDir, c:\temp\

FileInstall, libgomp-1.dll, %A_ScriptDir%\sox\libgomp-1.dll

FileInstall, pthreadgc2.dll, %A_ScriptDir%\sox\pthreadgc2.dll

FileInstall, sox.exe, %A_ScriptDir%\sox\sox.exe

FileInstall, zlib1.dll, %A_ScriptDir%\sox\zlib1.dll

gui, Add, text, x0 y0 w60 h20, 号码

gui, Add, edit, x60 y0 w140 h20 vphone,

Gui, Add, Checkbox, x200 y0 w100 h20 vcd, 呼叫时间

Gui, add, DateTime, x300 y0 w200 h20 vdate,

Gui, Add, Button, x500 y0 w100 h20 Default gsearch, 查询

Gui, Add, Button, x600 y0 w100 h20 glisten, 听取所选

gui, add, ListView, x0 y20 w700 h300, 被叫|主叫|通道|目标通道|状态|通话时长|呼叫时间|录音链接

Gui, Add, ActiveX, x0 w700 h100 vwmp, {6BF52A52-394A-11D3-B153-00C04F79FAA6}

gui, show, , 本地呼叫系统录音听取

GuiControl, , cd, 1

wmp.Settings.Volume := 100

return

search:

Gui, Submit, NoHide

if cd=1

{

FormatTime, calldate, % date, yyyy-MM-dd

search_url := "http://192.168.1.2/monitor.php?phone=" phone "&date=" calldate

}

else

search_url := "http://192.168.1.2/monitor.php?phone=" phone

result := URLDownloadToVar(search_url)

LV_Delete()

loop, Parse, result, `n, `r

{

obj := StrSplit(A_LoopField,",")

LV_Add("",obj*)

}

LV_ModifyCol()

return

listen:

FocusedRowNumber := LV_GetNext(0, "F")

if not FocusedRowNumber

{

MsgBox, 4144, 提示, 您未选择任何一条记录!

Return

}

LV_GetText(uri, FocusedRowNumber, 8)

if uri

{

url := "http://192.168.1.2" uri

if RegExMatch(uri,".*/(.*)\.gsm$",m)

{

URLDownloadToFile, % url, % "c:\temp\" m1 ".gsm"

RunWait, %A_ScriptDir%\sox\sox.exe c:\temp\%m1%.gsm c:\temp\%m1%.wav rate -v, , hide

}

else

{

RegExMatch(uri,".*/(.*)\.wav$",m)

URLDownloadToFile, % url, % "c:\temp\" m1 ".wav"

}

wmp.Url := "c:\temp\" m1 ".wav"

}

else

MsgBox, 64, 提示, 录音链接不存在!

return

GuiClose:

ExitApp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core开发实战(第32课:集成事件:解决跨微服务的最终一致性)--学习笔记...

32 | 集成事件:解决跨微服务的最终一致性首先看一下集成事件的工作原理它的目的时为了实现系统的集成,它主要是用于系统里面多个微服务之间相互传递事件集成事件的实现方式有两种,一种是图上显示的发布订阅的方式,通过 EventBus&a…

[观察,找规律]算法题目训练

[蓝桥杯2019初赛]旋转-找规律蓝桥杯2017初赛-打印大X-找规律[蓝桥杯2018初赛]分数-找规律[蓝桥杯2019初赛]矩形切割-找规律[蓝桥杯2018初赛]方格计数-巧妙枚举,找规,数论[蓝桥杯2016初赛]煤球数目-找规律

mysql多实例复制,Mysql实例使用Rotate Master实现MySQL 多主复制的实现方法

搜索热词《MysqL实例使用Rotate Master实现MysqL 多主复制的实现方法》要点:本文介绍了MysqL实例使用Rotate Master实现MysqL 多主复制的实现方法,希望对您有用。如果有疑问,可以联系我们。当然,5.6的GUID功能的出现也带来了multi-master的无…

Dapper操作MySQL数据库获取JSON数据中文乱码

在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正。为了引出最终问题出在什么地方,我们重头开始进行…

C++set容器去重法

给出一个10位数&#xff0c;它如果每个位的数都把0-9这10个数都只用了一次&#xff0c;就输出yes&#xff0c;否则输出no #include <iostream> #include <set> using namespace std; set<int>s; typedef long long LL;int main() {LL n;while (cin >>…

django mysql connector,MySQL Connector / python在Django中不起作用

我正在学习以MySQL为后端的Django。 我安装了Oracle的mysql连接器以与mysql连接。 但是&#xff0c;当我运行python manage.py时&#xff0c;出现此错误Traceback (most recent call last):File"C:\Python33\lib\site-packages\django\db\backends\mysql\base.py", l…

流传在程序员中的传说,你知道几个?

在号称从事高薪新 科技工作的程序员周遭流传着许多与他们单纯气质不符的传说在这些被神秘面纱笼罩的人群中即使是从事着同一工种都有着许许多多科学无法解释的差异老程序员们对此讳莫如深新程序员们却有时感到惶恐不安...这背后究竟是道德的扭曲还是人性的沦丧倒是都并不至于只…

C++关于getline()和getchar()的小点

getchar只能“吃”一个字符&#xff0c;而getline可以“吃”一行字符 代码如下: #include <iostream> #include <cstring> using namespace std;int main() {char c;cin>>c;string line;getline(cin,line);cout<<c<<endl;cout<<line<…

php 如何生成二级目录json,使用PHP根据已解码的JSON创建文件夹/文件结构

例如,我下面有一个build.json文件.包含我在JSON中创建的基本文件夹/文件结构.{"folders": [{"name": "folder-a","files": [{"name": "file-a.html"},{"name": "file-b.html"}],"folder…

谁说docker-compose不能水平扩展容器、服务多实例?

❝虽说我已经从docker-compose走上了docker swarm的邪门歪道&#xff0c;目前被迫走在k8s这条康庄大道&#xff0c; 但是我还是喜欢docker-compose简洁有效的部署方式。❞曾其何时docker-compose非常适合开发、测试、快速验证原型&#xff0c;这个小工具让单机部署容器变得简洁…

C++substr()用法

substr()用法: string 需要截取的字符串 a 截取字符串的开始位置&#xff08;注&#xff1a;当a等于0或1时&#xff0c;都是从第一位开始截取&#xff09; b 要截取的字符串的长度 注意:第3个参数是要截取字符串的长度

.NET Core开发实战(第33课:集成事件:使用RabbitMQ来实现EventBus)--学习笔记(上)...

33 | 集成事件&#xff1a;使用RabbitMQ来实现EventBus这一节我们来讲解如何通过 CAP 组件和 RabbitMQ 来实现 EventBus要实现 EventBus&#xff0c;我们这里借助了 RabbitMQ&#xff0c;它的整个安装和使用的体验是非常人性化的&#xff0c;如果是在 Windows 下开发的话&#…

nginx php iconv,Nginx +PHP部署一

Nginx PHP部署一Alvin.zeng目录一、安装PHP1、Yum安装需要的包yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurs…

递归算法训练

[蓝桥杯]字母组串-递归[蓝桥杯][基础练习VIP]FJ的字符串-递归

以Blog.Core的方式来打开Abp.vNext

&#xff08;发现Abp这个logo真像佐助写轮眼&#xff09;最近自己的框架已经基本的成型了&#xff0c;当然还有很多质疑的地方&#xff0c;比如这些人是这么说的&#xff0c;基本都是原文&#xff1a;你的教程太乱了&#xff0c;和框架代码都不一样&#xff08;&#xff1f;&am…

算法题目中常见的几种输入小点-gets,cin,scanf,getline,sstream

cin,scanf遇到空格都会停下来。gets可读入空格 例如: 在这里由于要读入空格&#xff0c;我们用gets来读入。 const int N 8; char g[N][N];while(gets(g[0])!NULL) {gets(g[1]);}C关于getline()和getchar()的小点C stringstream输入方式下面这两段代码要注意一下: const in…

php+换行+php+eol,PHP PHP_EOL 换行符

换行符unix系列用 \nwindows系列用 \r\nmac用 \rPHP中可以用PHP_EOL来替代&#xff0c;以提高代码的源代码级可移植性如&#xff1a;echoPHP_EOL;//windows平台相当于 echo "\r\n";//unix\linux平台相当于 echo "\n";//mac平台相当于 echo "…

如何做好一个开源项目(一)

做好一个开源项目其实是一件比较费时费力费心的工作&#xff0c;它的最大难点除了代码维护之外&#xff0c;还包括后期的维护和持续的跟进。我曾经做过不少开源项目&#xff0c;但是坚持下来的&#xff0c;目前有信心能够持续维护的也只有Magicodes.IE。这里请允许我来一波硬广…

量子力学问题matlab求解,一个关于量子力学中的matlab的问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼syms E U x U1 a a1 a2 k k1 k2 k3 b c d e f g h l S%其中&#xff0c;b c d e f g h l是为计算简明而引入的字符&#xff0c;S为透射系数D与反射系数R之和。Einput(请输入入射电子能量E);Uinput(请输入势垒函数U);a1input(请输入…

洛谷 P1506 拯救oibh总部-dfs染色法

题目背景 oibh总部突然被水淹没了&#xff01;现在需要你的救援…… 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙&#xff0c;用号表示&#xff0c;而一个封闭的号区域洪水是进不去的……现在给出oibh的围墙建设图&#xff0c;问oibh…