一、安装odbc

apt-get install unixodbc

如果需要用到编译的头文件之类的

apt-get install unixodbc-dev

二、安装mysql驱动

apt-get install libmyodbc

多数可能出现这个报错:

Reading package lists... Done

Building dependency tree

Reading state information... Done

Package libmyodbc is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or

is only available from another source

E: Package'libmyodbc' has no installation candidate

三、手动下载安装驱动

选择合适的版本和驱动

解压后,将库文件拷贝到合适的目录。

四、配置mysql驱动信息

文件:/etc/odbcinst.ini

[MySQL]

Description=ODBC forMySQL

Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5a.so //步骤3拷贝的路径

Setup=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5S.so

FileUsage=1

五、配置需要访问的数据库信息

文件:/etc/odbc.ini

[freeswitch]

Driver= /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5a.so3 SERVER =localhost

PORT= 3306DATABASE=freeswitch

OPTION= 67108864 //这个配置是支持多线程?对于freeswitch访问来说很重要!

USER =root

PASSWORD= password

六、测试驱动

isql -v freeswitch //先去数据库里创建一个表freeswitch

如果一切正常,能进入mysql后台。

反之,根据提示完善系统。

安装FreeSwitch

生成makefile

./configure --enable-core-odbc-support

编译 安装

make && make install (sudo make install)

安装成功的标志

+---------- FreeSWITCH install Complete ----------+

+ FreeSWITCH has been successfully installed. +

+ +

+ Install sounds: +

+ (uhd-sounds includes hd-sounds, sounds) +

+ (hd-sounds includes sounds) +

+ ------------------------------------ +

+ make cd-sounds-install +

+ make cd-moh-install +

+ +

+ make uhd-sounds-install +

+ make uhd-moh-install +

+ +

+ make hd-sounds-install +

+ make hd-moh-install +

+ +

+ make sounds-install +

+ make moh-install +

+ +

+ Install non english sounds: +

+ replace XX with language +

+ (ru : Russian) +

+ (fr : French) +

+ ------------------------------------ +

+ make cd-sounds-XX-install +

+ make uhd-sounds-XX-install +

+ make hd-sounds-XX-install +

+ make sounds-XX-install +

+ +

+ Upgrade to latest: +

+ ---------------------------------- +

+ make current +

+ +

+ Rebuild all: +

+ ---------------------------------- +

+ make sure +

+ +

+ Install/Re-install default config: +

+ ---------------------------------- +

+ make samples +

+ +

+ +

+ Additional resources: +

+ ---------------------------------- +

+ https://www.freeswitch.org +

+ https://freeswitch.org/confluence +

+ https://freeswitch.org/jira +

+ http://lists.freeswitch.org +

+ +

+ irc.freenode.net / #freeswitch +

+ +

+ Register For ClueCon: +

+ ---------------------------------- +

+ https://www.cluecon.com +

+ +

+-------------------------------------------------+

View Code

默认安装目录:/usr/local/freeswitch/

FreeSWITCH使用mysql存储用户

二、创建数据库

#创建用户表

#创建用户表CREATE TABLE `user` (

`id`int(11) NOT NULLAUTO_INCREMENT,

`user` varchar(10) DEFAULT NULL,

`password`varchar(30) DEFAULT NULL,PRIMARY KEY(`id`),

) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

#插入两个用户insert into user (user,password) values('8001','123456')insert into user (user,password) values('8002','123456')

三、将用户验证转接到lua脚本

1、将freeswitch/conf/autoload_configs/lua.conf.xml中的两行代码修改为如下所示

2、让lua脚本接管用户注册验证,这里调用的脚本是freeswitch/script/gen_dir_user_xml.lua内容如下,默认无该脚本,需自行创建

freeswitch.consoleLog("NOTICE","lua take the users...\n");local req_domain = params:getHeader("domain")local req_key = params:getHeader("key")local req_user = params:getHeader("user")local req_password = params:getHeader("pass")

freeswitch.consoleLog("NOTICE","start connect DB...\r\n");local dbh = freeswitch.Dbh("freeswitch","root","123456");assert(dbh:connected());

dbh:query("select password from user where user="..req_user,function(row)

freeswitch.consoleLog("NOTICE","DB select password="..string.format("%s\n",row.password))

req_password=string.format("%s",row.password)end);

dbh:release();

freeswitch.consoleLog("NOTICE","info:"..req_domain.."--"..req_key.."--"..req_user.."--"..req_password.."\n");if req_domain ~= nil and req_key ~= nil and req_user ~= nil thenXML_STRING=

[[<?xml version="1.0" encoding="UTF-8" standalone="no"?>

value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>

]]

elseXML_STRING=

[[<?xml version="1.0" encoding="UTF-8" standalone="no"?>

]]

endfreeswitch.consoleLog("NOTICE", "debug from gen_dir_user_xml.lua, generated XML:\n" .. XML_STRING .. "\n");

3、修改freeswitch/conf/directory/default.xml中的一部分内容,使得通过xml验证用户的功能失效,这样lua才能真正接管用户注册,删除的内容如下:

四、测试

使用SIP软电话(zoiper、eyeBeam等)来测试8001、或8002是否能正常登陆,可登陆即为配置成功

运行freeswitch

freeswitch -c -nonat

freeswitch 改用mysql_freeswitch和Mysql相关推荐

  1. freeswitch 改用mysql_成长足迹-freeswitch默认sqlite数据库改为mysql

    启动不了,使用/usr/bin/freeswitch -c -nonat -rp 查看错误 遇到问题 Row size too large...... 使用下面的sql提前创建表 CREATE TAB ...

  2. ef生成mysql字段注释_EFcore+MySql 数据迁移的时候,怎么给表结构加注释?

    前言: CodeFirst运用的场景比较少,不代表CodeFirst不好,也不能和DbFirst去作比较,本来就是两个东西. 吐槽: MySql.Data.EntityFrameworkCore 作为 ...

  3. Uber从Postgres切换到MySQL

    Uber工程师在官方博客上描述了他们为什么要从 Postgres 切换到 MySQL 数据库.Uber的早期架构是由 Python编写的后端应用构成,使用了 Postgres 数据库.但此后,Uber ...

  4. mysql到底可不可以使用join_《Mysql 到底可不可以使用 Join ?》

    一:Join 的问题? - 在实际生产中,使用 join 一般会集中在以下两类: - DBA 不让使用 Join ,使用 Join 会有什么问题呢? - 如果有两个大小不同的表做 join,应该用哪个 ...

  5. QT五子棋游戏课设及源码(连接mysql数据库含打开并运行程序的教程)

    gdut大一下学期c++课设(得分:95) 实验报告及源码压缩包百度云下载: 链接:https://pan.baidu.com/s/1zO5ofMz09fiWihxCcZcFbg 提取码:ddav 首 ...

  6. Mysql学习之优化篇

    索引优化 一.主键设计问题 1.1 雪花算法 1.1.1 结构 1.1.2 优缺点 1.1.3 代码实现 1.2 UUID 1.2.1 定义 1.2.2 结构 1.2.3 优缺点 1.3 数据库ID自 ...

  7. Day517.索引优化与查询优化 -mysql

    索引优化与查询优化 一.数据准备 学员表 插 50万 条, 班级表 插 1万 条. 步骤1:建表 #班级表 CREATE TABLE `class` ( `id` INT(11) NOT NULL A ...

  8. 高性能mysql学习总结笔记

    MySQL 可以分为 Server 层和存储引擎层两部分. 1.Server 层包括连接器.查询缓存.分析器.优化器.执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期.时间 ...

  9. 搭建XAMPP时mysql端口被占用

    问题描述:搭建xampp提示mysql端口被占用.如下图 原因:电脑之前安装过一个mysql没卸载. 解决办法: 2种情况:1.以前未安装过mysql,直接改端口号即可. 2.以前安装过mysql且不 ...

  10. mysql迁移数据库

    为什么uber工程师把数据库从postgres迁移到了mysql Uber工程师在官方博客上描述了他们为什么要从Postgres切换到MySQL数据库.Uber的早期架构是由Python编写的后端应用 ...

最新文章

  1. UVa 10375 - Choose and divide(唯一分解定理)
  2. Spark分区器HashPartitioner和RangePartitioner代码详解
  3. 天气预报Dom解析(转)
  4. js的navigator对象的使用(浏览器信息)
  5. Silverlight语音朗读
  6. ios开发网络学习三:NSURLConnection小文件大文件下载
  7. maven常用插件: 打包源码 / 跳过测试 / 单独打包依赖项
  8. 委托解绑的一个小问题
  9. python信号处理加汉明窗_Python学习-Scipy库信号处理signal(过滤、快速傅里叶变换、信号窗函数、卷积)...
  10. 机器学习笔记 - 简单了解模式识别
  11. 从不跑步到无间断跑步1年感受
  12. [Ansible专栏]Ansible条件判断的介绍和使用
  13. springboot结合shiro中anon配置失效
  14. LogBack 日志压缩产生上百G的tmp文件问题
  15. python里面pow是什么意思_pow在python中是什么意思
  16. 工具传送门(持续更新)
  17. 【电口模块专题】你不知道的电口模块冷知识
  18. Cookie在前端写还是后端?
  19. [精选] 统计在线人数,用php 如何来实现 ?
  20. Ubuntu16.04+CUDA8.0+cudnn5.1+TensorFlow-GPU详细安装步骤

热门文章

  1. 2018-03-28-日剂
  2. linux flash 存储寿命,关于 Flash 存储,你应该知道的一些事情
  3. 动效给程序员用什么格式_超炫酷的H5动效!学若干招让程序猿帮你实现吧-动画-程序员-_ 卡酷动画片...
  4. JS常见的兼容性问题汇总
  5. linux下多线程编程、线程间同步通信及应用详解、及踩过的坑
  6. 用VC6.0实现上位机串口通信
  7. Sql中的触发器(Triggers)
  8. 如何在IBM SPSS Statistics中进行K均值聚类分析
  9. WSL环境下使用RV-LINK下载和调试GD32VF103程序视频教程
  10. Xpose_HOOK入门教程