自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于Freeswitch实现的Volte网视频通知应用

从正常的理解角度,用freeswtich发起呼叫的话都会使用originate命令,这一点没有问题,但如果直接发起视频呼叫的话,用户这边会直接看到一个视频接听的标记(见下图),出于使用习惯的原因,可能一般用户都会拒绝此类呼叫。现在运营商的Volte网络已经很好的支持视频通话了,因此在原来的电话语音通知的基础上,可以更进一步实现视频的通知,让用户有更好的体验,本文就从技术角度,基于Freeswitch来实现此类应用(本文假设读者已对Freeswitch已有一定了解)。

2023-12-29 10:01:12 1019

原创 基于Freeswitch对接免费的ASR语音识别引擎

目前大部分的只能呼叫中心系统都对接了ASR语音识别引擎,主流的识别引擎有科大讯飞,阿里,百度等大厂的产品,价格不菲,有没有什么免费的引擎可以使用呢,答案是肯定的。

2023-11-30 14:58:56 1650 1

原创 关于Freeswtich的mod模块编译的一个问题

Abi 链接最常见的错误是 std::string 和 std::list 的在gcc 4.x 和 gcc 5.x 的不同实现引起的。但是 gcc 5.x 开始,对 string 的实现就放在了 std::__cxx11空间里,编译后展开为 std::__cxx11::basic_string。这就会导致在 gcc 4.x 编译的动态库,假如有的函数使用了 string 作为参数或者返回值,这时导出的函数参数为 std::basic_string 类型。无法在 gcc 5.x 下编译连接使用。

2023-11-26 11:45:12 435

原创 关于Freeswitch媒体流方向控制的一个问题

但是这种场景似乎也存在一个问题,这玩意似乎只能终端和freeswitch在内网可以玩,在公网环境下,sendonly后,终端不发送rtp,会导致freeswitch的rtp端口自适应无法起效,freeswitch的媒体流净往私网发了,这个问题不知有什么巧妙的方法了,要么rtp要代理了。今天碰到一个业务需求,希望Freeswitch在发起originate呼叫的时候,媒体流是单向的,只发送,不接收,反应到sdp的术语里面来说,也就是媒体属性希望是a=sendonly。

2023-11-15 16:16:03 222

原创 FreeSwitch采用mrcp协议对接科大讯飞asr和tts以及对话系统

FreeSwitch采用mrcp协议对接科大讯飞asr和tts对接过程

2023-04-20 17:04:53 4047

原创 基于Freeswitch实现公司总机话务台功能

基于Freeswitch实现的公司总机功能

2023-04-19 10:03:48 499

原创 私网Freeswitch且无固定公网IP的使用问题

介绍一种在无固定公网地址情况下的外部访问私网内Freeswitch服务器的方法。

2023-02-14 13:51:34 847

原创 基于Opensips+Rtpengine+Freeswitch实现的网络电话系统

基于Opensips+Rtpengine+Freeswitch实现的网络电话系统

2022-09-29 14:52:20 3886

原创 基于FreeSwitch实现的Webrtc VoIP Phone

一个基于webrtc和freeswitch实现的VoIP Phone实现

2022-08-10 11:10:30 1604

原创 基于FreeSwitch插件实现静音检测(VAD)和语音识别(ASR)

基于FreeSwitch插件实现的静音检测和语音识别功能

2022-07-04 15:53:26 3776 3

原创 Nginx日志按日分割方法

本文使用logrotate工具对Nginx日志进行按日的自动切割,操作系统为Centos7.6,步骤如下:1.编写针对Nginx的logrotate脚本如下(保存在/etc/logrotate.d/ )/usr/local/nginx/logs/*.log { daily missingok rotate 60 dateext notifempty create 0640 root root sharedscripts p

2022-05-01 09:21:25 858

原创 SqlServer动态分区表的使用方法

最近由于项目的需要,有一张数据表的数据量突增,导致查询的效率变低,即使优化了一定的索引结构后,既然不能解决,当然可以通过分表分库的方法进行解决,但是暂时又不想去改变程序结构。通过查阅了一些资料,打算采用SqlServer分区表的功能来进行尝试。由于这张数据标需要按日进行分区,所以我们需要一种方法,能够实现动态的分区表生成。以下就上述的目前展开方法的讨论,步骤如下:1. 创建分区文件组:ALTER DATABASE [dbname] ADD FILEGROUP filegroup20220304;

2022-03-08 10:59:05 1487

原创 MFC 通过ODBC方式连接Oracle数据库的方法

公司有个项目,客户指定要使用oracle数据库,因此有一个VC开发的应用需要连接Oracle数据库,评估了多种方案,最终决定使用ODBC的方式进行访问,此文详细记录下操作的步骤:1.下载安装oracle快速客户端和odbc驱动并安装在官网Instant Client for Windows 32-bit,下载instantclient-basic-nt-21.3.0.0.0.zip和instantclient-odbc-nt-21.3.0.0.0.zip两个文件,注意版本需要一致。解压上面两个包,把

2021-10-19 10:58:33 1442

原创 MySql表名大小写敏感问题处理

最近公司有个项目需要将原来的MySql数据库迁移到Linux系统下,直接测试网页应用,突然出现了许多表找不到的错误,通过查询资料,发现原来在Linux下的Mysql的表名是大小写敏感的,并且发现有一个参数可以控制表名的识别方式,参数如下:lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的 lower_case_table_names=2, 表名存储为

2021-10-13 11:02:16 830

原创 Tensorflow2.0 物体识别(一)训练模型数据准备

最近研究了一下人工智能图像识别方面的知识,使用的是鼎鼎大名的tensorflow工具,同时为了避免重复造轮子,使用了谷歌已经实现的的object detection api来实现图像识别。下载地址如下:https://github.com/tensorflow/models关于环境的安装,其实网上有很多教程,但是大部分都是基于tensorflow1.0的,基于tensorflow2.0的并不多,不过总体安装也并不算复杂,有些坑,但是不多,本章我们不做详细介绍,本章的主要目的是为了能训练自己的识别模型所需

2021-07-08 11:29:12 2573 5

原创 DateTime.Now 在.netcore下的格式问题

最近在使用.netcore做跨平台开发的时候碰到一个小问题,在数据库中需要保存一个时间字段,时间字段是通过DateTime.Now来获取的,当在Window平台上运行时候一切正常,但是当部署到Linux平台上运行后,提示保存失败,提示如下: 很明显,这个时间件格式变成了带中文"上午 下午"的模样,而不是常见的“yyyy-MM-dd HH:mm:ss”的格式,因此导致了保存出错,这很容易就想到了这和操作系统环境有关系,怎么解决呢,查阅了一些资料,其实也很简单,只需要在Mai...

2021-04-25 11:52:45 1653 2

原创 .netcore3下 ConfigurationManager配置立即生效的问题

公司原来的大部分.netframework网页项目都已经升级到最新的.netcore版本了。在以前对于读取应用配置,都是使用了ConfigurationManager的方法去读取app.config的配置参数,例如:ConfigurationManager.AppSettings["Test"] 到了.netcore版本,配置文件改在了appsetting.json文件中保存了,读取的方法也不太一样,为了降低移植的工作量,我们引入了System.Configuration.Co...

2021-04-07 16:26:50 658

原创 FreeSwitch在银河麒麟操作系统上的编译

近期尝试了一下在国产银河麒麟操作系统下编译FreeSwitch,最后是成功了,但是也碰到了一些问题,特此将整个编译过程记录如下,供有需要的朋友参考。 操作系统的环境如下图,freeswitch源码采用的是1.6.20版 第一步,我们先安装一些依赖项,这些是我一个个精心挑选的,没有多余不需要的:)yum -y install libjpeg-devel libcurl-devel speexdsp-dev libedit-dev...

2021-03-24 11:53:29 1349 1

原创 FreeSwitch防止sip攻击盗打的设置

FreeSwtich作为一款开源的软交换控制系统,由于其出色的性能和稳定性,已经在全世界范围内得到了广泛的应用,包括一些大型的公司也都在使用。当FreeSwitch一旦部署在公有云上,有经验的使用者很快都会发现,有大量的非正常呼叫请求消息会对系统进行攻击,这有可能会造成系统被盗打线路的风险。其中几乎全部的攻击均来自于国外,本篇文章从系统防火墙的角度来配置如果防范来自国外的SIP攻击,文章的系统环境为Centos7,防火墙使用自带的firewalld。 第一步,我们配置一个名字...

2021-03-22 21:14:49 1972

原创 Mysql++关于多数据集查询Commands out of sync; you can‘t run this command now的问题

今天在项目中使用了Mysql++调用Mysql的存储过程来实现功能,但是碰到一个有意思的问题,当成功调用存储过程后,再次做其他的查询,确返回Commands out of sync; you can't run this command now的错误。 Query query = conn.query(); memset(cSql, 0, sizeof(cSql)); sprintf(cSql, "call %s('%s','0','1',@phoneno,@uu...

2021-03-21 11:40:08 1102

原创 Nginx 实现对.NetCore3.1 Web应用和Signalr应用的反向代理

最新实现了一套基于.netcore3.1的web应用,由于系统有实时通信的需求,所以Web项目内使用了Signarl技术,它是一种使用Websocket协议进行通信的技术(当然也可以采用其他协议)。 为了保证稳定性,平台的部署考虑使用Centos Linux系统,并使用经典的Nginx作为反向代理,Web本地Url为http://localhost:5000,对于Web的反向代理比较简单,按如下配置即可:server { listen 8001; locatio...

2021-03-20 22:56:38 640 1

原创 .netcore3 下Signalr 关于Joson序列化后对象属性变小写的问题

最近在做关于Signalr的开发,碰到一个问题,当signalr在服务端调用客户端方法并传入对象参数时,在服务端对象的属性首字母是大写的,但是到了客户端,首字母就变成小写了。比如在服务端,user对象的属性的首字母都是大写的,user: F_AgentTime: "2021-03-12T12:00:14.1464954+08:00" F_Area: "" F_ClientId: "" F_ConnectionId: "9lnSbI0QB6HTx-SP6Z21...

2021-03-12 12:32:58 490

原创 Linux下C++编程内存泄漏检测工具Valgrind使用

最近将一些原本在Windows下的VC编写的代码移植到Linux平台,发现一款开源的内存泄露检查工具非常棒,它就是Valgrind,下面记录下它的安装和使用方法:1. 安装首先从官网下载最新的安装包,注意尽量下在最新,但是我最早下了个老版本,在运行程序时发现问题,而且是由于Valgrind的缺陷导致的,后来更新到新版本就好了。接下来进行源码安装,执行以下三步:./autogen.sh./configuremake && make install2. ...

2021-03-09 13:38:11 184

原创 Centos7 firewall 防火墙常用命令集

由于项目运维的需要,经常需要设置Linux系统的防火墙,在Centos下面,使用的是firewall-cmd工具,特此记录下一些常用的配置命令:# 查看防火墙服务状态systemctl status firewalld# 查看防火墙状态firewall-cmd --state# 开启防火墙service firewalld start# 关闭防火墙service firewalld stop# 重启防火墙service firewalld restart# 查看防火墙规...

2021-03-08 22:08:06 195

原创 MySql 5.7 在Centos7 的安装

1.在官网下载整体安装包5.7.29版本,https://downloads.mysql.com/archives/community/,文件大小520M,建议用下载工具下载。2.将安装包通过文件传输工具(如Xftp)传输至Centos Linux系统3.3.解压 tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar,卸载mariadb,因为有冲突。[root@localhost src]# rpm -qa|grep mariadbmariadb

2021-03-08 21:39:53 88

原创 Mysql++在Centos7下的安装

由于项目原因,需要在Linux下使用C++语言操作Mysql数据库,原打算使用原生的基于C语言的官方API库,但是研究下来感觉虽然简单,但是使用起来颇为麻烦,尤其对于select返回数据集的操作,设计的不是很人性化,不太符合现代语言的使用习惯,所以决定找找有什么比较好的封装库,经过多方比较,绝对采用Mysql++这个基于标准C++库的封装库。 下面就是整个安装的过程:1. 确保已经安装了mysql-client的开发库,一般在/usr/lib64/mysql/libmy...

2021-03-07 22:14:08 301 1

原创 ASP.Net core 中Server.MapPath的替换方法

最近忙着将原来的asp.net项目迁移到asp.net core平台,整体还比较顺利,但其中也碰到不少问题,其中比比较值得关注的一个问题是,在netcore平台中,System.Web程序集已经取消了,要获取HttpContext并不是太容易,好在通过依赖注入,还是可以得到的,具体方法不在本文的讨论范围,大家可以自行百度。但是在得到了netcore版本的HttpContext后,发现已经不再有Server.MapPath函数了,而这个函数在以前是会被经常引用到的。 通过百度研究,...

2021-03-03 22:52:22 8146 3

原创 .NetCore3.1下Signalr的跨域问题

今天将公司的.net 下的Signarl项目移植到.netcore平台,安装微软的官方文档,一切都比较顺利,但是最后再跨域问题上碰到了一点坑,特此记录一下,也供有同样需要的朋友参考。 在.net版本的Signalr下,跨域问题比较容易解决,代码如下:class Startup{ public void Configuration(IAppBuilder app) { app.Map("/signalr", map => ...

2021-03-03 12:25:05 954 1

原创 SVN服务器及客户端搭建

公司有个新建工程需要进行源代码管理,原来打算使用git工具,但是需要对源码的目录权限进行分用户控制,这个需求git无法实现,但SVN可以,以此确定用SVN作为工程的版本控制工具。一. 服务器端安装 首先从https://www.visualsvn.com/server/download/官网下载软件(服务器使用VisualSVN),直接安装,除了仓库保存位置,所有选项默认。打开控制台,新建一个代码仓。 然后新建用户User或者用户组Group,二. 客户...

2021-03-01 15:31:39 136

原创 Centos7安装Mono环境手记

因为Windows程序移植的需要,需要在Centos7上安装mono的环境,其实按照官网安装并没有什么难度,但是因为是国外网站,龟速你懂的,实在操作还是需要一些技巧。 话不多少,直接上干货:1.更新系统yum -y update2.更新安装源rpmkeys --import "http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38...

2021-02-22 21:24:04 1802 1

原创 FreeSwitch在Linux下的简化部署方案

最近公司的项目都在往Linux上做移植,这其中牵涉到我们的核心语音交换系统FreeSwitch在Linux上的部署,一般常规的部署安装都是从源码安装,./config,make,make install三部曲完成,但是经常会有缺这少那的情况发生,对于一些新进的安装维护人员,处理起来还是有些困难。 基于以上的原因,我们决定采用直接拷贝的部署方式,其实freeswitch在编译安装后,主体程序都在/usr/local/freeswitch中,所以我们思考将这个目录拷贝出来,直...

2021-02-22 13:45:34 519

原创 yum安装对于下载总是失败的rpm包如何处理

最近再折腾一些Windows程序移植到Linux平台执行,这其中需要用到一个中间件平台Mono,当即按官网的步骤yum install,可是无论如何,一些rpm包就是无法下载,主要是国外网站网速太慢,经常只有几个B的速度,令人抓狂。 而且这不是换下载源能解决的,怎么办呢,研究发现yum下载mono的rpm包都会放到/var/cache/yum/x86_64/7/mono-centos7-stable/packages下, 既然如此,对于下载失败那几个rpm,找到它的链接...

2021-02-21 21:09:53 888

基于VC 库文件的TTS开发包

基本VC库文件的TTS开发包,可集成再VC程序内使用,效果优良,默认支持女声。

2018-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除