我正在开发一个项目,以将 freeswitch 用作嵌入到另一个应用程序中。我正在开发一个 C#/.Net 应用程序。
我尝试了一些非常简单的方法,即在一个简单的测试项目的主要功能中初始化核心。我在项目中添加了 freeswitch.managed.dll 引用,我只输入了这 3 个命令,如 freeswitch wiki 中所示,
String err = "";
const uint flags = (uint)(switch_core_flag_enum_t.SCF_USE_SQL | switch_core_flag_enum_t.SCF_USE_AUTO_NAT);
freeswitch.switch_core_set_globals();
freeswitch.switch_core_init(flags, switch_bool_t.SWITCH_FALSE, ref err);
freeswitch.switch_core_init_and_modload(flags, switch_bool_t.SWITCH_FALSE, ref err);
前后是“欢迎”和“核心启动”控制台消息。现在,当我尝试构建整个东西时,它只是崩溃了。看来 switch_core_set_globals 函数工作正常。但另外两个是行不通的。
“未处理的系统。AccessViolationException 尝试读取或写入受保护的内存”
这让我感到奇怪,因为我能够成功构建一个项目,FSClient 是一个使用嵌入式 freeswitch 的软电话。没有崩溃,什么都没有。
因此,我想知道是否需要进行特定配置或任何其他设置操作才能正确启动 fs 内核;