Существует требование добавить нового пользователя в Kamailio программно с помощью PHP. Я попытался добавить имя пользователя и пароль в таблицу подписчиков вручную, используя SQL- запросы, но это не сработает, потому что ha1 и ha1b следует добавить в таблицу. Я не знаю, как 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 |
+----+----------+---------------+--------------+---------------+----------------------------------+----------------------------------+------+
Тогда я попытался с shell_exec функции в PHP, чтобы использовать команду kamctl (kamctl добавить имя пользователя пароль). но он будет запрашивать пароль пользователя для записи и записи Kamailio. Поэтому следующая команда не может добавлять новых пользователей в Kamailio
$res = shell_exec("sudo kamctl add new_username new_password);
поэтому, пожалуйста, предложите способ добавить нового пользователя в Kamailio программно.
Проблема заключалась в том, как предоставить пароль для подсказки, следующего за командой добавления.
Вот решение, вы можете использовать echo для передачи пароля в приглашение, и вы можете использовать канал прямо перед вашей фактической командой. Чтобы запрос получил эхо-пароль, он добавит нового пользователя.
$res = shell_exec("echo password |kamctl add new_username new_password");
Вы можете напрямую добавить таблицу подписчиков в базу данных Kamailio, если вы используете php для создания учетных записей пользователей. ha1b - это ничего, кроме хэша md5 имени пользователя, области, пароля. Структура таблицы подписчиков kamailio, как показано ниже.