如何使用PHP shell_exec将新用户添加到Kamailio?

时间:2017-12-20 11:11:05

标签: php mysql shell kamailio

需要使用 PHP 以编程方式将新用户添加到 Kamailio 。我尝试使用 SQL 查询手动将用户名和密码添加到 订阅者 表中,但它不会起作用,因为 ha1 < / strong>和 ha1b 应该添加到表中。我不知道Kamailio如何生成 ha1 ha1b 。以下是使用 kamctl 工具手动添加的条目。

&#13;
&#13;
mysql> select * from subscriber limit 2;
+----+----------+---------------+--------------+---------------+----------------------------------+----------------------------------+------+
| id | username | domain        | password     | email_address | ha1                              | ha1b                             | rpid |
+----+----------+---------------+--------------+---------------+----------------------------------+----------------------------------+------+
|  9 | 1010101  | 10.101.101.10 | aswwwwwwwsdf |               | a37d1785953310c206481ca1a33f16b6 | 7e981130f05a547a738d3c29031e89d0 | NULL |
| 10 | 1010102  | 10.101.101.10 | 6eeeeee8a72  |               | 6b574f9047206481ca1a33501d7dbdce | cd9a8b89d926f3cb1290311a8cb8a2a8 | NULL |
+----+----------+---------------+--------------+---------------+----------------------------------+----------------------------------+------+
&#13;
&#13;
&#13;

然后我尝试在 PHP 中使用 shell_exec 功能来使用 kamctl 命令( kamctl添加用户名密码 )。但它会提示 Kamailio 读写用户的密码。因此,以下命令无法将新用户添加到Kamailio

$res = shell_exec("sudo kamctl add new_username new_password);   

所以,请建议一种以编程方式将新用户添加到 Kamailio 的方式。

2 个答案:

答案 0 :(得分:1)

如果您使用php创建用户帐户,则可以直接添加到Kamailio数据库中的订阅者表。 ha1b只是用户名,域名,密码详细信息的md5哈希。 kamailio订阅者表结构如下所示。enter image description here

答案 1 :(得分:0)

问题是如何为添加命令后的提示提供密码 以下是解决方案,您可以使用 echo 将密码传递给提示,并且可以在实际命令之前使用管道。因此,提示将获得回显密码,并将添加新用户。

$res = shell_exec("echo password |kamctl add new_username new_password");