LINUX.ORG.RU
ФорумAdmin

Автоинформатор на основе Elastix

 , ,


1

2

Добрый день!

Имеется задача: реализовать автоинформатор, который будет обзванивать клиентов и сообщать о задолженности. База клиентов, номеров и сумм выгружается из 1С 8.2.

Что есть: Panasonic PBX kx-tes824, в которую приходят 6 медных городских линий и к которой подключен десяток внутренних абонентов; D-link 7111s; Elastix.

Как представляю себе реализацию: Подключаю к панасонику d-link 7111s, как внутренний абонент. Настраиваю исходящий от этого внутреннего через определенный внешний номер, чтобы всегда только он определялся. Поднимаю sip-транк между д-линком и Астериском. Все исходящие с астериска - через него пускаю, линию ограничиваю в 1 канал. Делаю таблицу в базе на астериске с полями «клиент, номер, задолженность, статус обзвона, кол-во попыток». Даю доступ к базе извне, так, чтобы непосредственно из базы 1С смогли настроить выгрузку в базу астериска. И вижу я себе скрипт, который будет мониторить таблицу, и если там есть необработанные клиенты, то будет формировать call-файлы и перемещать их в папку родного автоматического обзвона астериска. Но, при условии, что сейчас «удобное для звонков время» и количество call-файлов в конечной папке не больше 1. В call-файл буду так же передавать параметром сумму задолженности, которую потом буду использовать в контексте, вызываемом при таком звонке. Сумму задолженности буду проговаривать функцией «playback» между двумя заранее записанными звуковыми файлами. А так же укажу заполнение таблицы результатами - дозвонились или нет. Построение отчёта о звонках сделается силами 1С-ника.

Хочу спросить Вашего совета, имеет ли право на жизнь мною описанная выше схема? Посоветуете ли вы иным способом выполнить такую задачу? Или, может быть, существуют уже реализованные бесплатные или не очень дорогие плагины для таких задач автоматического обзвона?

Asterisk умеет получать данные из БД (через odbc) напрямую в диалплане. Можно также сделать на agi, а вызовы инициализировать через ari/ami.

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

invokercd ★★★★
()

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

parusnik
()
Ответ на: комментарий от invokercd

invokercd, спасибо за ответ!

Да, непосредственно через odbc в диалплане будет обращение к БД, с целью записи информацию о текущем звонке, успешный он или нет. Если нет, то инкрементировать счётчик попыток звонка в записи в базе. При достижении определённого значения, скрипт не будет формировать call-файлы. Можно, конечно, через это же соединение с базой в диалплане брать сумму задолженности, а можно как я выше описал - передавать в качестве параметра для call-файла. Это уж кому как нравится :)

Д-линк здесь лишь как связующее звено с панасоником, к которому приходит медь. А в sip-номерах от провайдера нужды нет, слишком малое кол-во исходящих звонков нужно сделать. Одной медной линии вполне хватит.

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

Я бы сделал всё на ari/ami. То есть вообще бы не запрашивал данные из Asterisk.

Приложение (на чем больше нравится) просто будет обращаться к Asterisk, делать вызов, запрашивать состояние и по результатам писать в свою базу нужную информацию.

Это позволит выкинуть Asterisk из логики, и оставить на нём лишь фунции звонка.

Я конечно абсолютно ничего не имею против запросов через odbc и т.д., но мне кажется это оверхед - делить логику на две части (скрипт и Asterisk).

invokercd ★★★★
()
Последнее исправление: invokercd (всего исправлений: 1)
Ответ на: комментарий от lexerzh

А с медной линией, как узнать успешный звонок был или нет??

victorb ★★
()
3 июня 2015 г.

Я морочился подобной задачей около месяца, в итоге отказался от собственной реализации и использовал готовый сервис автоинформирования. Самый серьезный затык у меня случился при генерации голосового сообщения из текста и простой интеграции с бизнес-приложением. Выбранный сервис решил обе проблемы.

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