Комментарии 27
Вообще, по идее, это дыра, как и трансфер с городского (сотового) на городской (сотовый). По идее можно позвонить в Мозамбик, если знать куда звонить (ладно тут набираются 4 цифры). Лучший и удобный вариант — впн до работы, а там софт сипфон.
-1
думаю ВПН не лучший и не удобный для обычного человека. И не у каждого смарт с которого можно ВПН поднять.
Можно выставить ПИНКОД и этого хватит с головой. А можно ещё ограничить на какие номера делать callback вызов. Статья то не о том как закрыть станцию, а как использовать её возможности.
Можно выставить ПИНКОД и этого хватит с головой. А можно ещё ограничить на какие номера делать callback вызов. Статья то не о том как закрыть станцию, а как использовать её возможности.
0
Это не дыра. Точнее если подходить с таким взглядом на АТС но это вообще одна сплошная дыра- но все решаемо: ставьте пинкоды, 2-х, 3-х, N-факторные аутентификации. Закрывайте все что можно сертификатами и криптостойкими паролями и все будет хорошо. Суть статьи как правильно заметили — показать возможности АТС. Если учитывать все мелочи в статье, то она получится очень большая и основной смысл затеряется за мелочами.
0
из старых запасов:
call-back-mont.php:
call-back.php
ну а дальше только ваша фантазия.
[call-back-mont]
exten => s,1,noop(trying to record call-back)
exten => s,2,DeadAGI,call-back-mont.php
;exten => s,2,AGI,call-back-mont.php
exten => s,3,Hangup()
call-back-mont.php:
require 'phpagi.php';
$agi = new AGI();
$agi->verbose("######### welcome to call-back-mont... #########");
$caller_id = $agi->request['agi_callerid'];
$agi->verbose("######### Call ID: ".$caller_id." #########");
if(is_numeric($caller_id))
{
$caller_id = '8'.$caller_id;
$agi->verbose("######### CALL #########");
$p = popen("/usr/bin/php /var/lib/asterisk/agi-bin/call-back.php $caller_id >> ./call-back.log &", 'r');
$agi->verbose("######### '.$p.' #########");
//sleep(1);
pclose($p);
}else
{
$agi->verbose("######### NOT NUMERIC #########");
}
$agi->hangup();
call-back.php
require_once("phpagi-asmanager.php");
sleep(15);
$f = fopen("/var/lib/asterisk/agi-bin/call-back.log","a");
$date = date("Y-m-d H:i:s");
$log = "\n".$date.' '.$argv[1];
fwrite($f,$log);
$asm = new AGI_AsteriskManager();
$asm->connect('localhost', '***', '***');
$call = $asm->send_request('Originate',
array('Channel'=>"SIP/***/".$argv[1],
'Context'=>'inbound-1',
'Priority'=>'1',
'Exten'=>'****',
'Callerid'=>'****',
'Timeout' => '30000',
'Async'=>true));
$asm->disconnect();
fclose($f);
ну а дальше только ваша фантазия.
0
AGI тяжелая штука для сервисов и вообще ИМХО зло. Стараюсь ее избегать. Пока что получается в 99,9% случаев. Только однажды пришлось делать свою реализацию очереди- использовали ARI- гораздо круче.
0
REST легче AGI?
а вообще, скрипт который я привел работает на всех версиях астериска, начиная от 1.4. Скрипту больше 6ти лет.
и в agi общение происходит через stdio
при использовании не PHP можно сделать свое ядро с «ручками» и дергать его по agi.
Причем AGI позволяет выполнять скрипт при уже мертвом канале.
При некоторой сноровке в скрипт (на любом языке) помещаются все необходимые проверки. AGI позволяет сделать доп функционал астериску без перегрузки диалплана. Например: Автозвонилка с автоинформатором по sql базе. Не буду объяснять почему работу sql в астериске лучше выносить за диалплан.
а вообще, скрипт который я привел работает на всех версиях астериска, начиная от 1.4. Скрипту больше 6ти лет.
и в agi общение происходит через stdio
при использовании не PHP можно сделать свое ядро с «ручками» и дергать его по agi.
Причем AGI позволяет выполнять скрипт при уже мертвом канале.
При некоторой сноровке в скрипт (на любом языке) помещаются все необходимые проверки. AGI позволяет сделать доп функционал астериску без перегрузки диалплана. Например: Автозвонилка с автоинформатором по sql базе. Не буду объяснять почему работу sql в астериске лучше выносить за диалплан.
0
При мертвом канале можно выполнять и из диалплана. STDOUT реализуется на той же системе, что и АТС, а REST (ну или на крайний случай fastAgi) можно вынести с сервера. Ну до кучи у REST возможностей побольше будет. Все таки это приятное сочетание AGI + AMI. Особенно все это замечательно работает если дело касается распределенных систем.
По диалплану- быстрее всего все работает на lua. прибавим сюда производительность самого языка + расширение функциями С(++) + работу с sql + работу диалплана без предварительного парсинга со стороны АТС: получается все очень быстро.
Ну в общем и целом — ни одного плюса я в AGI интерфейсе не увидел пока что.
По диалплану- быстрее всего все работает на lua. прибавим сюда производительность самого языка + расширение функциями С(++) + работу с sql + работу диалплана без предварительного парсинга со стороны АТС: получается все очень быстро.
Ну в общем и целом — ни одного плюса я в AGI интерфейсе не увидел пока что.
0
плюс agi в том, что он есть в любом астериске, начиная с версии 1.2
ARI появился этим летом (точной информации не нашел)
ARI появился этим летом (точной информации не нашел)
0
exten => callback,1,Read(NUM,input-number,4,n,1,5)
5 это вроде тайм-аут? Имхо побольше надо, а то пока на мобильный дозвонится…
0
Когда астериск перезванивает на мобильный — берешь трубку и слышишь обрывок фразы, т.е. Read запускается еще до снятия трубки
0
прям Америку автор открыл… чесслово
Нормальные компании уже давно используют конвергентные решения на базе FMC — на мобиле внутренний безроуминговый номер, с которого можно напрямую звонить через офисный транк. Мы своим клиентам уже давно предлагаем такое решение — удобно, просто, никаких доп настроек.
Нормальные компании уже давно используют конвергентные решения на базе FMC — на мобиле внутренний безроуминговый номер, с которого можно напрямую звонить через офисный транк. Мы своим клиентам уже давно предлагаем такое решение — удобно, просто, никаких доп настроек.
0
Данное решение не обязательно привязывать к мобильным номерам. Можно же шире мыслить.
0
Ваше решение является как раз частным случаем расширенных возможностей использования API для организации callback'ов. Изначально постановка вопроса была: «Встречается ситуация когда сотрудники находясь в командировках звонят с сотовых по межгороду в головной офис».
0
FMC какого оператора пользуете? Как в целом работает, реквестирую отзыв. =)
У нас МТС и половина функций FMC просто не работает. Обещают уже год запустить услугу «Виртуальную АТС» (якобы там всё будет), но что-то тянут.
У нас МТС и половина функций FMC просто не работает. Обещают уже год запустить услугу «Виртуальную АТС» (якобы там всё будет), но что-то тянут.
0
habrahabr.ru/post/104026/ — «Хитрый CallBack»
Моя статья от 2010 года… Что-нить принципиально новое у Вас есть???
Моя статья от 2010 года… Что-нить принципиально новое у Вас есть???
0
А вы прикидывали сколько можно заработать, если узнать ваш номер для перезвона и звонить на него ночью в максимальное количество линий с подстановкой номера 8-809 (платного)?
0
Можно защитить номер различными способами. Они уже обсуждались в комментариях.
0
А зачем писать такую статью? Напишите лучше как защищать.
Как в том анекдоте: «Как выходить из мертвой петли читайте в следующем номере журнала».
Зачем нужна такая статья? Смотрите, я умею писать скрипты и настраивать простые контексты в астериск?
Да это описано в любой книге по астериску, тут ничего нового, интересного, о чем стоило написать на habrahabr.
Как в том анекдоте: «Как выходить из мертвой петли читайте в следующем номере журнала».
Зачем нужна такая статья? Смотрите, я умею писать скрипты и настраивать простые контексты в астериск?
Да это описано в любой книге по астериску, тут ничего нового, интересного, о чем стоило написать на habrahabr.
0
Вот специально для вас видимо писал P. S… У всех же есть голова на плечах. Статья написана о логике работы подобного сценария. Существуют шаблоны, которые можно внедрить и изменить получив необходимый результат. Если не все в состоянии это делать- то это уже не ко мне претензии. А за показухой мне гнаться не за чем, сложные с узкой специализацией диалпланы выкладывать смысла не имеет, так как широкого применения они не найдут, а описание отдельных функций действительно описано в литературе, собственно я его и не касался -если вы читали статью. Тут как бы людям помочь — основная цель, просветить что-ли. Естественно найдутся люди, у которых так же была необходимость внедрить что-то подобное, а найдутся и те, кому это будет полезно. Судя по добавлению в избранное статьи — это большинство.
+1
А если я вам позвоню с номера мозамбика или 8-809 — перезвонит и будет держать до посинения?
-1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Asterisk Обратный звонок, или как дешево звонить