Asterisk pbx agi php 脚本与 imagick 动态成像无法正常工作

Asterisk pbx agi php 脚本与 imagick 动态成像无法正常工作

问题描述:

使用 ASTERISK AGI PHP 脚本生成图像,并使用imagick.

installed:php-imagick/oldstable,now 3.4.4+php8.0+3.4.

AGI PHP 脚本由两部分组成:

1 生成包含来电者信息的图像,例如电话号码,并根据电话号码生成相应的护照照片。

2 将此图像发送至手机。

PHP 脚本的作用是什么?

2:将现有图像发送到手机。

如果我使用现有图像,它将被发送到手机并显示,没有任何问题。

PHP 脚本中不起作用的内容:

1:imagick 没有生成图像。

在 Asterisk CLI 中,我看到脚本是使用 a 执行的0,因此没有错误消息。


如果我以 root 身份启动脚本,/usr/share/asterisk/agi-bin那么一切都会正常。 Imagick 生成图像并将其整齐地传送到手机:

php script.php 01234567

但是一旦脚本调用 imagick 它就会停止工作,如下所示: $foto = new Imagick("/path/to/image/image.png");

我尝试过什么:

1 使用其他图像生成器:gdimagegmagick,但它们也有同样的问题。

2chown 777 script.php

3 使用 AGI 命令检查 Asterisk 是否传递了正确的变量(工作正常)

4 以另一个用户身份在 CLI 中启动 PHP 脚本 ( su otheruser) imagick 也不起作用。

谁能给我指出正确的方向,为什么 imagick 不从 Asterisk 中的 AGI 生成图像?

更新:好的,我已经取得了一些进展。我怀疑这是一个读写权限的情况。当我写入 /tmp 时,脚本不会停止,并且图像实际上被写入 /tmp。阅读该图片仍然会产生问题。我继续寻找。

答案1

好吧,经过一番摆弄,我找到了一个希望安全的解决方案。我将 asterisk 添加到 www-data 组,现在 asterisk php agi with imagick 可以毫无问题地写入图像,我可以轻松地将其发送到手机。一切都按其应有的方式进行。

(感谢 waltinator 的投入!)

相关内容