BuzzyMan:
В общем сравнивайте логи рабочий звонок + не рабочий звонок. Смотрите какие callerid и куда уходят.
И правьте диалплан под нужную вам логику.
Здесь нет решения универсального т.к. диаплан все пишут себе сами и удобным для себя способом.
В общем это не решить только на стороне PHP.
Если ломается/чинится от смены callerid значит надо диалплан поправить дабы удовлетворить все требования и звонок прошел и показал всем те номера которые должен.
BuzzyMan: так в этом и вопрос, какой callerId уходит клиенту. Т.к. при Originate вы устанавливаете только один номер для оператора. Клиент скорее всего получает его же, как вы сами написали, при его смене работает, но получаете другие косяки.
В это случае надо диалплан модифицировать чтобы передавать туда CallerID который видит оператор и CallerID2 который видит клиент.
Ну а в целом CallerID очень важен для оператора. И нам далеко не сразу дали возможность подставлять свои номера. А так же могу начаться проблемы с принимающей стороной, у них тоже свои запреты. И например МТС несколько раз просто банил наш сервер, за то что мы использовали какие-то "неправильные" CallerID. Т.е. МТС буквально отрубал нас от своей сети, и наш сервер не мог звонить на все МТС номера. Если не ошибаюсь им не нравилось когда мы отправляли в качестве CallerID их собственные номера(не клиента, а просто МТСовские номера).
+ У операторов связи внутри жесткая каша с "логистикой" когда подставляют чужие номера, и они это очень не любят. На уровне протокола телефонного нет разделения по операторам, поэтому когда ставишь удобные данные в CallerID кто-то кому-то должен заплатить, а выясняется это по номерам из "логов", которые принадлежат совсем не тем компаниям которые совершали звонки.
En1ken: ну собственно все возможные варианты я описал.
Больше уже некуда копать.
Я думаю стоит попробовать по ссылке библиотеку в таком случае.
У меня есть небольшое готовое решение с этой библиотекой.
Можно попробовать вычислить его если хотите.
Точнее поймать его разок, а дальше пытаться автоматически это делать и принимать какие-то меры.
En1ken: без тора остаются прокси обычные на любой вкус.
Их тысячи. Узнать что это прокси достоверно нельзя.
Можно отсечь какой-то процент прозрачных проксь.
Но не все.
Надо изучать что всё таки используется тор или прокси.
Если прокси смотреть какого вида.
И прокси ли это вообще или динамический адрес просто.
Если динамический банить подсеть.
Если прокси вычислять прозрачные, остальные проверять по ГЕО например.
Так по чуть-чуть варианты отсеиваются.
Искать общие параметры - браузер, экран, еще что-то.
Записать сценарий, посмотреть в вебвизоре.
Проработать этот сценарий и вычислять что человек добавляет в корзину определенный товар и через 5 секунд бежит оплачивать.
Так не бывает. Соответственно это можно выследить и послать его или сделать какую-то защиту от этого.
Не думаю что там сидит великий аноним и хакер.
Скорее всего даже проксей нет, а просто "модем перевоткнул".
Так что можно легко вычислить по браузеру: https://github.com/Valve/fingerprintjs2
Расширение для браузера или скрипт для сайта.
Абсолютно разные вещи, стоило как минимум это указать.
У расширений нет доступа к области видимости window текущего окна, насколько я знаю.
Для того чтобы внедриться в работу именно JS скриптов сайта, нужно инджектить свой код на страницу и работать из него.
Backend я или нет - не имеет разницы. Когда вы уже прекратите задирать свой нос и будете общаться с редкими гостями этого ресурса как подобает в цивилизованном обществе..?
Вопрос не про бекенд, а про "я сирьёзный бекнд девелопер", гуглить я конечно не буду. И код не покажу, и не расскажу что я делаю вообще. Лучше HTML в теги добавлю в вопрос про JS.
Такие редкие что у нескольких десятков человек уже тысячи ответов набрались.
ой-ой извините, я имел в виду разрешите написать за вас код и погуглить.
Ярослав Иванов: это делается не через узнавание установленных плагинов.
На страницу вставляется блок типа рекламный и проверяется его размер.
Если 0x0 то значит есть адблок и скрывает его.
По ссылке опять же есть функция определения адблока
patrikot: так говорите как-будто каждый день приходится сервера настраивать.
Я думаю что на чистый сервер быстрее накатить весь нужный софт(nginx, mysql, бекенд-окружение).
Быстрее чем сначала устанавливать туда докер, а потом в докере запускать весь софт отдельно.
А если все стоит на разных серверах, и новый сервер только под определенную задачу - фронт-nginx например, то еще быстрее поставить без докера.
Если проект выходит за рамки одного сервера значит там уже есть/должен быть человек который этим занимается - сисадмин. Ну или devops если модными словами.
Стандарт этот где написан? Почитал бы.
Victor: из платных готовых не искал и не встречал.
При наличии своего астера можно накидать простой скрипт с дозвоном по списку номеров.
Я просто делал по крону раз в N минут M звонков.
При звонке проигрывается текст записанный.
А затем голосовая менюшка: 1 - связаться с оператором(в очередь уходит) или кладите трубку.
В общем сравнивайте логи рабочий звонок + не рабочий звонок. Смотрите какие callerid и куда уходят.
И правьте диалплан под нужную вам логику.
Здесь нет решения универсального т.к. диаплан все пишут себе сами и удобным для себя способом.
В общем это не решить только на стороне PHP.
Если ломается/чинится от смены callerid значит надо диалплан поправить дабы удовлетворить все требования и звонок прошел и показал всем те номера которые должен.