2013-10-24 4 views
1

Я использую ASTERISK для переадресации звонков внутри моей компании.Asterisk SIP пользовательская аутентификация

Только авторизованные/авторизованные пользователи могут совершать звонки.

У нас уже есть служба, которая обрабатывает аутентификацию, и есть ли способ интегрировать аутентификацию из asterisk (sip.conf) в нашу службу?

Таким образом, вместо ввода всех пользователей и паролей в sip.conf asterisk может просто вызвать некоторый API, который связывается с нашей службой аутентификации.

В принципе, мне нужен способ получить имя пользователя/пароль с устройства SIP и пройти аутентификацию. Поскольку у каждого пользователя есть другой пароль, было бы нецелесообразно вводить его все в sip.conf, когда у нас уже есть все пользователи/пароли в нашей базе данных.

Благодаря

ответ

2

Есть много способов сделать авторизацию в звездочке

  • использовать звездочку realtime architecture, авторизация осуществляется через базу данных (MySQL/ODBC). Это ВЫСОКО рекомендуемый метод. Для интеграции в режиме реального времени см. this.
  • use exec include method (при перезагрузке выполнить внешний скрипт, который предоставляет конфигурацию). Изменяет конфигурацию только при перезагрузке. Check this link
  • использовать открыватель (kamailio/opensips) перед звездочкой, использовать авторы с завитом, чтобы получить ответ от вашего API. Ваш API должен быть ДЕЙСТВИТЕЛЬНО быстрым, и вам нужно быть экспертом в opensips/kamailio.

Поскольку все, что довольно общие вещи для звездочки, вероятно, вам нужен специалист звездочки для проверки аудита/безопасности/аудита эффективности для вашей системы или вам нужно кого-то из ваших сотрудников, чтобы прочитать некоторые книги, как O'Reilly's Asterisk The Future Of Telephony просто понять некоторые возможные проблемы.

+0

Спасибо. Путь ODBC кажется сложным, поскольку он создает серьезные ограничения в формате базы данных.У нас уже есть база данных, интегрированная со многими нашими внутренними процессами, поэтому мы просто не можем ее изменить, чтобы адаптироваться к звездочке. Второй вариант - хороший! просто написать программу на C++, которая могла бы работать с информацией «printf» sip.conf? Проблема заключается в накладных расходах на всех пользователей ... Я не мог понять третий вариант. Не могли бы вы объяснить это немного дальше? Большое спасибо ! – user1558688

+0

Нет проблем с форматом. Просто создайте представление и укажите звездочку для этого представления. Если у вашей команды нет опытного разработчика mysql (или другого db) - наймите его, это будет простая задача. Для второго варианта будет работать любая программа, которая создает правильный файл конфигурации для stdout. Третий вариант - используйте программное обеспечение kamailio.org. Боюсь, вам нужен эксперт по камаилио, чтобы использовать это. – arheops

1

arheops ударил по большим оппонентам. Он такой классный. В качестве альтернативы, если ваш телефон поддерживает работу с браузерами XML/java-приложений на телефоне, как это делают некоторые, вы также можете использовать собственный заголовок SIP для обеспечения второго коэффициента аутентификации. Таким образом, у телефона есть невращающийся RSA-ключ, для первого коэффициента аутентификации, а затем динамически выполняет вызов типа CHAP на ваш сервер аутентификации для получения гораздо более короткого «ключа go», который включен как пользовательский заголовок SIP , Нет допустимого времени, нет разрешений на вызов. Если вы можете получить двухфакторную схему аутентификации, при этом одним из факторов является ключ RSA/DSA, вы, вероятно, более чем достаточно защищены.

0

Вы можете использовать AGI для прямого или косвенного подключения к вашей базе данных. AGI может писать на PHP, Java, Python ... или на других языках, с которыми Asterisk обеспечивает работу. Когда расширение пытается совершать звонки, ваш Agi подключается к базе данных, заполняет имя пользователя и пароль, а затем аутентифицируется .... Надеюсь, что эта помощь,

+0

Thats вид вещи, которую я ищу. Могу ли я написать его в C? Если да, то как мой сценарий AGI возвращает информацию на диалплан, чтобы звездочка продолжала с помощью моста или нет? Есть ли какой-нибудь пример? Спасибо – user1558688

+0

Другая проблема: как я могу получить учетные данные с устройства SIP внутри моего скрипта? Имя пользователя и «секретная» информация? – user1558688

+0

Вы не можете использовать agi для sip auth. Человек ответил просто не экспертом. – arheops

0

Я работаю над Asterisk более 2 лет. Я использовал AGI для подключения к среде Windows. Я написал много кодов Asterisk, чтобы вырезать IVR ... и так далее. Я использую PHP для написания AGI. Таким образом, AGI подключается к Microsoft SQL, получает данные и возвращает данные обратно в план набора Asterisk. Это не просто, но не слишком сложно для этой задачи. Дело в том, что вам нужно научиться писать коды в Asterisk, а также узнать, как использовать AGI.

Смежные вопросы