FreeSwitch数据库详解
第一步:FreeSwitch数据库FreeSwitch默认使用 SQLITE嵌入式数据库,因而不需要任何设置就能工作。
默认的数据库存储位置:安装目录下的db目录
默认的核心数据库名称:core.db。
https://i-blog.csdnimg.cn/direct/997724f855674eeaa22389fd47eb6804.png
https://i-blog.csdnimg.cn/direct/04a63518dee542e59aafb45915466d10.png
freeswitch默认使用sqlite3数据库,但也支持odbc使用其它数据库,或者PostgreSQL支持的三类数据库类型:
switch_core_db.c实现sqlite核心数据库,
switch_odbc.c实现例如MySQL的数据库,
switch_pgsql.c实现PostgreSQL数据库。
Tables下令会显示数据库中全部的表,各表的作用如下:
https://i-blog.csdnimg.cn/direct/5457b04832434cb1962b360df49696c5.png
Core数据库的全部表:
https://i-blog.csdnimg.cn/direct/591883d08222409e894e889313c983bb.png
https://i-blog.csdnimg.cn/direct/641f3d3749b54b92ad7480fab5949f13.png
https://i-blog.csdnimg.cn/direct/82e897294bef4235b794ceaec1f260f9.png
使用数据库会低沉FreeSwitch的性能,固然禁用 FreeSWITCH 中的 SQLite 可以进步性能和安全性,但是会增加平台的不稳定性风险。
禁用 SQLite 的步调:
设置文件:/usr/local/freeswitch/conf/autoload_configs/auto_load_config.xml。
注释掉 mod_mdb_sqlite 模块的设置项:
<!-- <load module="mod_mdb_sqlite"/> --> 禁用 mod_callcenter 模块中的 SQLite 设置。
设置文件: /usr/local/freeswitch/conf/autoload_configs/callcenter.conf.xml
<!--<param name="odbc-dsn" value=""sqlite:///usr/local/freeswitch/db/callcenter.db""/>-->
第二步:SqlLite数据库管理工具下载与安装
下载地点:SQLiteStudio
安装:
https://i-blog.csdnimg.cn/direct/840ae8f9aaba4a838f02efdbea212ea8.png
https://i-blog.csdnimg.cn/direct/b0d8cb9ff04a494982ee24a4e265b01e.png
https://i-blog.csdnimg.cn/direct/f4e9923809cf47128770cdccf6f72b3d.png
https://i-blog.csdnimg.cn/direct/3d9b57603e384ec090ee30da807a789f.png
https://i-blog.csdnimg.cn/direct/c8dcdfd3dcf741c2ac21cec832aae7f5.png
https://i-blog.csdnimg.cn/direct/1bdf0b317aca4d128906246d9328a8f1.png
https://i-blog.csdnimg.cn/direct/6cec1f5c0a394cb68c648b2a3014aaef.png
https://i-blog.csdnimg.cn/direct/0a24242f44634618a10f0cae85ee8ab2.png
第三步:Java链接FreeSwitch数据库
载入sqlLite驱动
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.41.2.1</version>
</dependency>
编写数据库链接代码:
import java.sql.*;
/**
* FreeSwitchSqliteDemo
*
* @author 赵海洋
* @date 2024/08/30
*/
public class FreeSwitchSqliteDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("org.sqlite.JDBC");
//SQLite 数据库文件
String dbFile = "C:\\Program Files\\FreeSWITCH\\db\\core.db";
String url = "jdbc:sqlite:" + dbFile;
Connection conn = DriverManager.getConnection(url);
String sql = "select * from registrations";
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= columnCount; i++) {
String Column = md.getColumnName(i);
Object obj = rs.getObject(i);
System.out.println(Column+"\t-->\t"+obj);
}
System.out.println("------------------------------------------");
}
conn.close();
}
}
实行结果:
"C:\Program Files\Java\jdk1.8.0_271\bin\java.exe" "-javaagent:D:\Program Files\Jetbrains\IntelliJ IDEA 2020.1\lib\idea_rt.jar=61012:D:\Program Files\Jetbrains\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_271\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\rt.jar;E:\项目\workspace\FSESLManger\FSwitchESL\target\classes;C:\Users\HIAPAD\.m2\repository\io\netty\netty-all\4.1.42.Final\netty-all-4.1.42.Final.jar;C:\Users\HIAPAD\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\HIAPAD\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\HIAPAD\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\HIAPAD\.m2\repository\com\google\guava\guava\23.4-jre\guava-23.4-jre.jar;C:\Users\HIAPAD\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\HIAPAD\.m2\repository\com\google\errorprone\error_prone_annotations\2.0.18\error_prone_annotations-2.0.18.jar;C:\Users\HIAPAD\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\HIAPAD\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\HIAPAD\.m2\repository\org\xerial\sqlite-jdbc\3.41.2.1\sqlite-jdbc-3.41.2.1.jar" org.freeswitch.esl.client.sample.example.inbound.FreeSwitchSqliteDemo
reg_user --> 1004
realm --> 192.168.1.8
token --> YjVkMzU3NzMxOWMxZDQ5MzQwNGNmNGFhYTFlZjBkOGQ.
url --> sofia/internal/sip:1004@192.168.1.8:34004;rinstance=02cc6f3b1473ca2d
expires --> 1725006845
network_ip --> 192.168.1.8
network_port --> 34004
network_proto --> udp
hostname --> HIAPAD-X20AB365
metadata --> null
------------------------------------------
reg_user --> 1002
realm --> 192.168.1.8
token --> eFAXTMD3Af_CguT9ibDwEg..
url --> sofia/internal/sip:1002@192.168.1.3:46015;rinstance=aeb37a9d4e6d339f;transport=tcp
expires --> 1725006472
network_ip --> 192.168.1.3
network_port --> 37741
network_proto --> tcp
hostname --> HIAPAD-X20AB365
metadata --> null
------------------------------------------
Process finished with exit code 0
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]