在不久的将来,我将设置一个 Asterisk 盒子来处理我们办公室中的所有电话(一个 linux 软件开发人员)。我玩了一场,基本的设置似乎相当简单,复杂的东西也可能。
我应该考虑使用诸如星号-gui 或 FreePBX 之类的 GUI 吗?GUI 似乎想要“按照自己的方式”配置事物,有时它们并没有给出我想要的详细程度,但它们确实很容易。
一种选择可能是基本上在 GUI 中设置系统,然后手动编辑配置文件。
有人对这个有经验么?
在不久的将来,我将设置一个 Asterisk 盒子来处理我们办公室中的所有电话(一个 linux 软件开发人员)。我玩了一场,基本的设置似乎相当简单,复杂的东西也可能。
我应该考虑使用诸如星号-gui 或 FreePBX 之类的 GUI 吗?GUI 似乎想要“按照自己的方式”配置事物,有时它们并没有给出我想要的详细程度,但它们确实很容易。
一种选择可能是基本上在 GUI 中设置系统,然后手动编辑配置文件。
有人对这个有经验么?
前期:我曾经是freepbx的核心开发人员,但后来搬到了另一家公司,不幸的是没有时间了。
这真的取决于你的风格。当然,通过手动,您可以获得大量控制权。但是,您还必须考虑您要完成的工作。归根结底,一个办公 PBX 通常需要以某种方式工作,并且需要提供一堆基线服务。手写,你最终会重新发明轮子,编写所有这些小服务和每个 PBX 需要的东西。
当您使用 GUI 时,您正在使用已经编写了这些内容的代码,并且社区已经共同找出了问题,并且知道哪些有效,哪些无效。坦率地说,执行常见任务(例如使用 GUI 设置新扩展)比使用一堆配置文件要快得多——尤其是如果你几个月没有这样做的话——因为 GUI 直观且简单捡回来。
至于定制,手写你无疑可以做任何你想做的事。然而,freepbx 尤其允许通过插件完成相当多的工作——插件可以或多或少地修改拨号方案的任何部分。纯星号拨号方案代码有一个抽象层,所以如果你已经知道星号,你将不得不重新学习其中的一些,但这并不是一个很大的飞跃。
当您确实需要偏离现有的 PBX 功能时,也没有什么能阻止您添加自己的自定义应用程序(手工编写),并且 freepbx 可以轻松地从 GUI 引用这些应用程序,像原生应用程序一样无缝地绑定它们(通过插件,或者只是自定义操作)。
我最初参与 Freepbx 是因为我正在建立一个办公室 PBX,而且我很懒 - 手动添加扩展,并记住添加适当的挂钩以转到语音邮件,并启用其他功能等,这是重复的、无聊的和错误的-prone(例如“哎呀,鲍勃的分机转到了戴夫的语音信箱?对不起,这是一个错字!”)。
我不能代表每个 GUI,但我不建议使用 freepbx 来生成配置文件,以便以后手动编辑它们:它旨在对星号和插件代码有效,而不是人类可读的。(例如,它有时会重复代码块而不是使用宏)。最重要的是,如果您再次通过 freepbx 生成配置,您将丢失对自动生成的文件所做的任何更改。
当然,手工编辑最终会产生更高效的拨号方案,就像用汇编编写程序对 CPU 来说比用 C++ 编写更高效一样。您必须考虑什么更有价值 - 更大的 CPU 100 美元,还是您的许多(可能数百)小时的时间?
听听你的经历会很有趣,因为这是几个月后的事了。
你的初步印象是正确的;GUI 喜欢按照自己的方式做事,尝试跳出那个框框有时会很困难。想想 Debian 进行 Apache 配置与标准源代码分发的方式——一个配置文件与通过包含语句拉入的数十甚至数百个配置文件。您还将倾向于在 GUI 发行版中找到多个级别的宏,这可能会导致使用它们创建的配置文件不是最佳的。
如果你然后去编辑他们创建的配置文件,你必须非常小心地在 GUI 允许你的配置的相同部分进行更改 - 否则 GUI 可能无法识别你所做的,或者更糟糕的是,因为您将更改放在错误的位置,所以您使用自己的模板所做的事情被盖住了。
如果您只是想使用 GUI 开始,那么接管将起作用的配置的完全控制,但您可能会被迫减少 GUI 为您自己的理智而使用的层。
如果您想要完全控制(就像我一样),我建议:
希望这对你有一些用处。
几乎所有你想做的事情都可以用 FreePBX“系统”完成(它不仅仅是一个 GUI。)而且,FreePBX 开箱即用地为你设置了很多东西,否则对于新的 Asterisk 管理员来说很难.
FreePBX 也有一些设施,您可以在其中覆盖它创建的配置,以防它无法通过 Web 界面执行您想要的操作。
不,Asterisk 的 GUI 具有误导性。所有的 GUI 都倾向于更改 Asterisk 的 conf 文件,并且它们会教授不良(读取专有)实践。Digium 在每个主要版本中都对 Asterisk 语法进行了更改,您需要跟上它。在此基础上添加 GUI 自己的配置逻辑是不必要的开销。我完美的 Asterisk GUI 将完全不受干扰。它只会在端口 5038 上侦听 Manager 事件并报告它们。也发出命令。布特不需要任何内部管道。