LINUX.ORG.RU
ФорумAdmin

Прикидываю ... к носу. Нужны мнения.

 , ,


0

2

Сценарий:

  • Сидит пользователь за компом на работе, в браузере открыт локальный сайт с заявками от пользователей.
  • Звонит SIP телефон аппаратный пользователя.
  • На сайте открывается окно с информацией о звонящем, туда-то пользователь и записывает обращение.

Кто как бы реализовывал?

★★★★★

Через различные модули, например можешь вытащить технологию из VtigerCRM

anonymous
()

от сервера sip плясать надо. много вариантов. может сервер откладывать файл с инфо куда-то, может стучать в порт, где сайт сидит и т.д.

uspen ★★★★★
()
Ответ на: комментарий от petav

Не могу решить, как связать Астериск и Сайт. Нужен демон между Астериском и ВЕбсокетом в браузере? Это пока рабочая мысль.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Или звонок запускает AGI скрипт, а дальше....

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

а проектирование не работа?

если что я не знаю как именно это делать. если бы делал своими силами, то откладывал бы инфу sip сервером куда-либо, а сайтом бы ее забирал и парсил.

uspen ★★★★★
()
Ответ на: комментарий от uspen

хотя, это плохое решение. Лучше обратиться к профессионалам по web-программированию и пусть пишут нормальный интерфейс.

uspen ★★★★★
()
Ответ на: комментарий от uspen

а проектирование не работа?

Порой даже серьезнее основной, но

если что я не знаю как именно это делать. если бы делал своими силами, то откладывал бы инфу sip сервером куда-либо, а сайтом бы ее забирал и парсил.

Сулит временными задержками!!! Сокеты?!

petav ★★★★★
() автор топика
Ответ на: комментарий от uspen

web программирование тоже отчасти.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

В диалплане написать нечто вроде

exten => _X.,1,System(update_db.sh ${EXTEN} ${CALLERID(num)})
exten => _X.,n,Dial(SIP/${EXTEN})

Скрипт занесет в базу сайта пару внутренний номер - аон. Ну а у пользователя открытая страничка аяксом пробует обновиться раз в секунду.

Yur4eg ★★
()

диалплан пишет событие в БД кто, куда и когда. А сайт на основе этой информации решает, кому что открыть.

zgen ★★★★★
()

ну - можно даже очень просто - и без джавы
юзер запрашивает веб скрипт - скрипт отдает часть страници - а потом просто - не обрывая коннекта просто ждет поступление сообщения о звонке - и как тока сообзение о звонке поступает - дописывает ту страницу что запросил юзер

ae1234 ★★
()
Ответ на: комментарий от ae1234

Это ajax long polling, перспективнее websocket использовать, он для этого и заточен. Спасибо! Пришел к выводу что нужен демон между AMI Астериска и Браузером. Поступает звонок демон фиксирует его, анализирует и сообщает браузеру об этом через websocket. Должно работать моментально.

petav ★★★★★
() автор топика
Ответ на: комментарий от zgen

Задержки и лишняя загрузка. Сайт должен делать запросы в базу данных по интервалу? Вы же это имеете ввиду?

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Задержки и лишняя загрузка.

Волшебства не бывает.

Сайт должен делать запросы в базу данных по интервалу?

Я не web программист, но да, как-то так. Сайт ли, скрипт ли.

Но я бы поостерегся тяжелую логику вешать на asterisk - это грозит вам проблемами в будущем.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Но я бы поостерегся тяжелую логику вешать на asterisk - это грозит вам проблемами в будущем.

С этим соглашусь. На нем логики практически не будет. Бизнес логика будет на сайте. Астериск только своим делом будет занят, регистрацией звонков.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Видимо не совсем поняли:

Читать это как «не запускать плохо детерминируемых по времени и действиям скриптов, во избежание адских глюков со звонками, адской нагрузкой и падений asterisk'а в кору».

zgen ★★★★★
()
Ответ на: комментарий от petav

Думаю AGI будет писать данные в сокет запущенного демона (пока не знаю на чем, но точно не php), обработав информацию, тот будет дергать сокет на веб интерфейсе. Думаю что конструкция безопасна. Не соединился с сокетом вышел, кинул ругань в лог.

Если задача не перестанет быть актуальной, постараюсь найти время стенд собрать. Спасибо за мнение.

petav ★★★★★
() автор топика

Десктопное приложение с простеньким веб-сервером внутри на, например, 9718 порту, при получении определённого запроса (да хотя бы POST) вываливающее информацию из оного в окошко. Т. о., со стороны * достаточно выполнить wget/curl при поступлении звонка.

berrywizard ★★★★★
()
Ответ на: комментарий от petav

Зато как легко реализуется. Сто пользователей - сто запросов в секунду, для апача это не нагрузка.

Yur4eg ★★
()
Ответ на: комментарий от zgen

Исправляем конструкцию на

System(update_db.sh ${EXTEN} ${CALLERID(num)}&)
и скрипт будет выполняться в фоне, а астериск побежит далее по диалплану без задержки

Yur4eg ★★
()
Ответ на: комментарий от petav

Раз в секунду запрос к базе? Кажется оверхед в такой конструкции.

Я бы сделал кнопку на сайте «Регистрация звонка». Оператор при получении звонка и желании его зарегистрировать жамкает кнопку и в частично заполненную (от астериска) форму заносит данные.

sdio ★★★★★
()
Ответ на: комментарий от sdio

Ооооооооооооооооооооо. Запомнил

petav ★★★★★
() автор топика
Ответ на: комментарий от sdio

Не дописал:

При полной автоматизации, может быть сбой, данные от астериска не придут и форма не откроется. Что будет тогда делать оператор?

sdio ★★★★★
()
Ответ на: комментарий от sdio

Сам внесет эти данные. Укажет номер телефона и система дополнит все остальное. клиент, открытые заявки и т.п. А если нет, то просто зарегит заявку руками полностью.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Сам внесет эти данные.

Я не об этом. Все-равно надо будет сделать кнопку, чтобы открыть форму в ручную.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.