如何使用 PHP shell_exec 添加新用户到 Kamailio?
How to add new user to Kamailio using PHP shell_exec?
需要使用 PHP 以编程方式将新用户添加到 Kamailio。我尝试使用 SQL[=43= 手动将用户名和密码添加到 subscriber table ] 查询,但它不会工作,因为 ha1 和 ha1b 应该添加到 table。我不知道 Kamailio 如何生成 ha1 和 ha1b。以下是使用 kamctl 工具手动添加的条目。
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 |
+----+----------+---------------+--------------+---------------+----------------------------------+----------------------------------+------+
然后我尝试在 PHP 中使用 shell_exec 函数来使用 kamctl 命令(kamctl 添加用户名密码)。但它会提示输入 Kamailio 读写用户密码。因此以下命令无法将新用户添加到 Kamailio
$res = shell_exec("sudo kamctl add new_username new_password);
所以,请建议一种以编程方式将新用户添加到 Kamailio 的方法。
如果您使用 php 创建用户帐户,您可以直接在 Kamailio 数据库中添加订阅者 table。 ha1b 只不过是用户名、领域、密码详细信息的 md5 散列。 kamailio 订阅者 table 结构如下所示。
问题是关于如何为 add 命令后出现的提示提供密码。
这是解决方案,您可以使用 echo 将密码传递给提示,您可以在实际命令之前使用 pipe。这样提示就会得到回显的密码,并且会添加一个新用户。
$res = shell_exec("echo password |kamctl add new_username new_password");
需要使用 PHP 以编程方式将新用户添加到 Kamailio。我尝试使用 SQL[=43= 手动将用户名和密码添加到 subscriber table ] 查询,但它不会工作,因为 ha1 和 ha1b 应该添加到 table。我不知道 Kamailio 如何生成 ha1 和 ha1b。以下是使用 kamctl 工具手动添加的条目。
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 |
+----+----------+---------------+--------------+---------------+----------------------------------+----------------------------------+------+
然后我尝试在 PHP 中使用 shell_exec 函数来使用 kamctl 命令(kamctl 添加用户名密码)。但它会提示输入 Kamailio 读写用户密码。因此以下命令无法将新用户添加到 Kamailio
$res = shell_exec("sudo kamctl add new_username new_password);
所以,请建议一种以编程方式将新用户添加到 Kamailio 的方法。
如果您使用 php 创建用户帐户,您可以直接在 Kamailio 数据库中添加订阅者 table。 ha1b 只不过是用户名、领域、密码详细信息的 md5 散列。 kamailio 订阅者 table 结构如下所示。
问题是关于如何为 add 命令后出现的提示提供密码。
这是解决方案,您可以使用 echo 将密码传递给提示,您可以在实际命令之前使用 pipe。这样提示就会得到回显的密码,并且会添加一个新用户。
$res = shell_exec("echo password |kamctl add new_username new_password");