Comments 9
Штатные средства Asterisk — это хорошо.
Но! Есть целый ряд недочетов.
1. Зачем такие разрешения для Originate? Я про /etc/asterisk/manager.conf и write=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate. Разрешение system в случае взлома web сайта позволит выполнять шел скрипты из под id asterisk, а если админ телефонии допустил такой косячище, как запуск asterisk из-под рута, то атакующий получит рута, просто поломав php сайт.
2. Давать разработчику web сайта телнет на свой астериск просто небезопасно :-) Плюс учить его командам AMI. Проще и чуть более правильно дать разработчику сайта AJAM — wiki.asterisk.org/wiki/display/AST/Asynchronous+Javascript+Asterisk+Manger+%28AJAM%29
3. А самое правильное — это дать доступ через AMI прокси — www.voip-info.org/wiki/view/Asterisk+Manager+Proxy
Но! Есть целый ряд недочетов.
1. Зачем такие разрешения для Originate? Я про /etc/asterisk/manager.conf и write=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate. Разрешение system в случае взлома web сайта позволит выполнять шел скрипты из под id asterisk, а если админ телефонии допустил такой косячище, как запуск asterisk из-под рута, то атакующий получит рута, просто поломав php сайт.
2. Давать разработчику web сайта телнет на свой астериск просто небезопасно :-) Плюс учить его командам AMI. Проще и чуть более правильно дать разработчику сайта AJAM — wiki.asterisk.org/wiki/display/AST/Asynchronous+Javascript+Asterisk+Manger+%28AJAM%29
3. А самое правильное — это дать доступ через AMI прокси — www.voip-info.org/wiki/view/Asterisk+Manager+Proxy
Есть готовые библиотеки для работы с AMI, лучше использовать их, чем, в частности, полагаться на то, что AMI отреагирует на логин за 500 мкс :)
Да и вообще описанный функционал проще всего реализовать с помощью call-файлов
Да и вообще описанный функционал проще всего реализовать с помощью call-файлов
Колл-файлы генерить надо… А еще правильную дату создания им писать. Да и срабатывать колбэк будет не мгновенно в этом случае. А еще надо их ложить туда куда апач должен доступ иметь — а это чревато (конечно если именно апач используется) :)
Колл-файл генерируется из шаблона одной регуляркой, а уж в плане безопасности доступ к AMI куда сомнительней ;)
Кстати, коллбэк срабатывает мгновенно, как только * видит файл в папке с ctime меньше текущего времени. Настолько мгновенно, что надо создавать файл не сразу в спуле *, а в другом месте и только после этого переносить файл в спул.
Я, честно говоря уже не помню всех мелочей, но…
Имеем одну линию.
Идет запрос на перезвон, создается колл-файл, сразу перезвон.
Идет второй запрос на перезвон (первый звонок не закончен), создаем колл-файл, и тут уже многое зависит от настроек астериска.
А если у нас создается 10 запросов и нас волнует приоритетность их выполнения — мы оказываемся в полной, извините, жопе :)
Собственно потому я предпочитал рулить пулом колбэков из под самописного демона на питоне который с менеджером работал.
Имеем одну линию.
Идет запрос на перезвон, создается колл-файл, сразу перезвон.
Идет второй запрос на перезвон (первый звонок не закончен), создаем колл-файл, и тут уже многое зависит от настроек астериска.
А если у нас создается 10 запросов и нас волнует приоритетность их выполнения — мы оказываемся в полной, извините, жопе :)
Собственно потому я предпочитал рулить пулом колбэков из под самописного демона на питоне который с менеджером работал.
Sign up to leave a comment.
Asterisk: обратный вызов с использованием AMI