Asterisk sip.conf в базе данных MySQL

Я могу включить телефон в базу данных для использования в реальном времени. Итак, этот код (из /etc/asterisk/sip.conf):

[phone]
type=friend
username=phone
secret=12345
host=dynamic
disallow=all
allow=g729
allow=alaw
context=somecontext
nat=no
insecure=port,invite

теперь он находится внутри базы данных (с использованием MySQL).

Теперь я хочу включить магистраль SIP, используя директиву register, но я не знаю, как это сделать.

Как я могу включить register => <username>:<password>@<provider> а внутри базы данных тоже?

2 ответа

У вас есть 2 варианта.

1) статическое в реальном времени. Просто поместите в mysql построчно весь файл

https://www.voip-info.org/asterisk-realtime-static

В этом режиме, когда вы запускаете звездочку, перезагрузите ее, просто прочитав из базы данных построчно и интерпретировав ее как текстовый файл.

2) динамическое в реальном времени.

В этом режиме звездочка проверяет базу данных только при наличии запроса на авторизацию и только для сопоставленных пиров.

https://www.voip-info.org/asterisk-realtime-sip/

Используйте regserver param для установки вашего регистрационного сервера.

Директива register должна быть статической записью в разделе sip.conf [general], поэтому, хотя вы можете сделать это со статическим реальным временем, у вас могут возникнуть проблемы с загрузкой динамических пользователей реального времени.

Лучшим вариантом может быть использование директивы #exec в sip.conf. Это позволит вам запустить скрипт для чтения этой строки регистра из строки БД.

Для этого вам нужно включить execinclude = yes в asterisk.conf, а затем добавить строку в раздел sip.conf [general] для запуска вашего скрипта, например: #exec /etc/asterisk/scripts/your_script_file

Вот хороший пример использования Leif Madsen #exec для установки externip= paramater с помощью php-скрипта: https://leifmadsen.wordpress.com/2011/02/27/using-exec-to-set-externaddr-in-sip-conf/

Другие вопросы по тегам