首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Freeswitch中成本最低的路由-无法读取Config文件

Freeswitch中成本最低的路由-无法读取Config文件
EN

Server Fault用户
提问于 2016-10-23 08:56:21
回答 1查看 456关注 0票数 0

作为FusionPBX图形用户界面系统的一部分,我们有一个免费的安装。FusionPBX版本3.7.1,免费版本1.4.9。FusionPBX使用的数据库是Postgres。

安装默认编译最小成本的路由模块"mod_lcr“,并在模块配置文件"/usr/local/freeswitch/mod/mod_lcr.so”中启用它。

但是,我似乎无法使用mod_lcr。

发出命令

代码语言:javascript
复制
reload mod_lcr

给出以下错误:

代码语言:javascript
复制
2016-10-22 23:22:12.023181 [ERR] mod_lcr.c:1078 Unable to determine database RANDOM function
2016-10-22 23:22:12.023181 [DEBUG] mod_lcr.c:1110 param val is       rate,quality,reliability
2016-10-22 23:22:12.023181 [DEBUG] mod_lcr.c:1113 arg #0/3 is rate
2016-10-22 23:22:12.023181 [DEBUG] mod_lcr.c:1113 arg #1/3 is quality
2016-10-22 23:22:12.023181 [DEBUG] mod_lcr.c:1113 arg #2/3 is reliability
2016-10-22 23:22:12.023181 [ERR] mod_lcr.c:2089 Unable to load lcr  config file
2016-10-22 23:22:12.023181 [CRIT] switch_loadable_module.c:1447 Error Loading module /usr/local/freeswitch/mod/mod_lcr.so
**Module load routine returned an error**

我查看了源代码"mod_lcr.c“,我无法看到错误实际上是什么。它显然加载配置并执行函数"lcr_load_config“的一部分,正如上面记录到的控制台所看到的那样,但是错误在某个点上我无法清楚地识别出来。

这似乎与没有为该模块正确定义数据库有关。在mod_lcr.c的第1056行中,它应该在读取了配置的“设置”xml标记之后,将数据源名称写入日志,但它没有。设置标记确实存在--参见下面配置的样子。但是它没有设置"globals.odbc_dsn“变量。

"mod_lcr“的Freeswitch文档在这一点上非常少,只是说

“编辑默认配置文件和数据库连接信息/usr/local/freeswitch/conf/autoload_configs/lcr.conf.xml”

但是,我需要将什么放入配置文件中呢?

默认情况下,在我的安装中它包含:

代码语言:javascript
复制
<settings>
  <param name="odbc-dsn" value="${dsn_system}"/>
</settings>

我将lcr、运营商、carrier_gateway表添加到数据库"freeswitch“和"fusionpbx”中。没有改变,仍然是同样的错误。

有什么不对的地方吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-10-23 09:44:41

我自己想出来的。

该错误实际上丢失了数据库信息。错误消息“无法读取配置文件”具有误导性。

关键是FusionPBX安装没有设置变量"dsn_system“。可以设置该变量,也可以在配置文件/usr/local/freeswitch/conf/autoload_configs/lcr.conf.xml.中显式地声明连接字符串。

因此,要改进mod_lcr的Freeswitch手册页面,您需要做的是使用"mod_lcr“如下:

  1. 确保用mod_lcr模块编译Freeswitch
  2. 确保在自卸车中装载mod_lcr
  3. 为LCR创建表。目录/usr/src/freeswitch/src/mod/applications/mod_lcr/sql/包含用于执行此操作的脚本。
  4. 为要使用的数据库计算一个连接字符串,并将其放入文件/usr/local/freeswitch/conf/autoload_configs/lcr.conf.xml.中的“设置”XML标记中。

对于Postgres数据库来说,这相当简单。下面是lcr.conf.xml文件中的显式设置:

代码语言:javascript
复制
<settings>
   <param name="odbc-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch 
          user=freeswitch password=xxxx "/>
</settings>
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/810736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档