HAAst 以退出代码 158 终止

HAAst terminating with exit code 158

我只是想在将 Telium 的 HAAst 提供给客户之前对其进行 POC 测试,但在启动 haast 守护程序之前我已经停滞了。目前我有一个带有 Ubuntu 16.04 LTS 的虚拟机,安装了 Digium 的基本 Asterisk 13。我配置了 haast.conf,看起来不错,但是我无法启动 haast 守护进程,它会在几秒钟后停止。这是相关的日志输出:

General, HAAst version 2.3.2.1 starting as daemon under process ID 2409

Controller, Local peer HAAst state changing to service start

License, License file not found. Switching to Free Edition

General, Settings contained 0 information; 0 warning; and 0 error messages.

Asterisk Controller, Unable to located executable to control Asterisk

Controller, Local peer HAAst state changing to service stop

Controller, Stopped

General, HAAst terminating with exit code 158 (failure to find asterisk control files) after running for 2 seconds

看来,haast 缺少启动Asterisk 守护进程的事件控制器,不幸的是它没有包含安装包。我尝试根据其他示例事件文件制作这些文件 (asterisk.start & asterisk.stop),我已经设置了可执行位,我已经将 shebang 写到第一行基于安装指南,但没有任何帮助。

有人对这个案例有经验吗?

谢谢,Zsolt

Haast 配置丢失或不正确:

Unable to located executable to control Asterisk

此错误意味着 Asterisk 的高可用性 (HAAst) 无法找到控制 Asterisk 所需的 service/executable 文件。由于 haast.conf 文件的 [asterisk] 节中的 'distribution' 设置为 2 (Digium Asterisk),这意味着 Asterisk 服务文件有问题。

Ubuntu 16 使用 systemd 那么您是否安装了 Digium 的 asterisk.service (systemd) 文件?如果您选择为 Asterisk 安装 initd 服务文件,那么您可能必须明确告诉 HAAst 要查找的文件。如果你两者都没有安装,那是你的问题。 HAAst (Telium) 的制造商有一个解决此主题的支持论坛 (click here)。

pre 和 post Asterisk 事件处理程序仅在 HAAst 的商业版本中可用 - 所以这无济于事(但这也是解决问题的错误方法)。支持论坛上还有一些 Ubuntu 特定主题 https://www.telium.io/haast 以防有帮助。

如果找不到 Asterisk systemd 服务文件,这里有一个示例:

[Unit]
Description=Asterisk PBX and telephony daemon
Documentation=man:asterisk(8)
Wants=network.target
After=network.target

[Service]
Type=simple
User=asterisk
Group=asterisk
ExecStart=/usr/bin/asterisk -f -C /etc/asterisk/asterisk.conf
ExecStop=/usr/bin/asterisk -rx 'core stop now'
ExecReload=/usr/bin/asterisk -rx 'core reload'

[Install]
WantedBy=multi-user.target

只需将该文件另存为 'asterisk.service' 并放入 /etc/systemd/system/ 并确保权限与其他 service/unit 文件相匹配。