Проверьте ещё вывод команды 'dialplan show default' в консоли астериска. Если там стоят Gosub, а не Macro, то используется контекст stdexten, а не macro-stdexten. Переключить можно через опцию stdexten в asterisk.conf.
В принципе, md5 с солью (и, возможно, перцем) вполне достаточно для защиты в случае утечки базы без исходных кодов сайта. Но от подбора паролей вида '123456' это всё равно не спасёт.
Добавлю, что если в первом случае массив и будет создан, то по завершению функции память, выделенная для этого массива, останется в области стека и может быть повторно использована и перезаписана в других функциях.
Да, это упрощённый фрагмент с боевого сервера. Несуществующий/выключенный номер проверяется раньше через $["${SIPPEER(${EXTEN},callerid_num)}"=""] и $["${SIPPEER(${EXTEN},status)}"="UNREACHABLE"]
Суд руководствуется здравым смыслом и мнениями экспертов. Практику смотрите здесь, правда в основном эта статья идёт как сопутствующая в разбирательстве.
Противоречия не будет, федеральный закон в любом случае выше лицензионного соглашения. Про размер цитаты в комментарии сказано - в случае спора определит суд.
@top13 Малость ошибся, поправил. Работает так - для каждого параметра (например, $foo) определяется, нужен ли по нему поиск ($byFoo). Если нет, то сработает первая часть условия в скобках ($byFoo = 0), если да, то будет вычислена вторая часть условия (`foo` = $foo).
@tatu Попробуйте для проверки заменить в запросе LIKE '%Катукова%' на REGEXP '(К|K)(а|a)т(у|y)к(о|o)в(а|a)', в каждой паре первая буква русская, вторая - английская.