1. asterisk настроенный на входящие звонки от клиентов.
2. БД с клиентами\таксистами крутится на Postgresql.
3. доступ к базе через odbc. если астериску нужно что либо выдернуть из базы, делаю это например так...
exten => 2,n,set(clientnumber=${ODBC_SQL(SELECT client.phone_number FROM public.client, public.order_cur, public.bort, public.driver WHERE order_cur.id_bort = bort.id AND order_cur.id_client = client.id AND driver.id.....
exten => 2,n,verbose(номер клиента =${clientnumber})
exten => 2,n,Dial(${TEL1}/${clientnumber})
теперь подошло время создать автоинформатор клиентов о подъехавшей машине.
4. сделал в базе для автоинформатора такую таблицу....
id ; id_order ; phone ; message ; ring ; ok
1 ; 3 ; +7918111111 ; "машина подъехала, выходите" ; 0.wav ; false
2 ; 4 ; +7918222222 ;"машина ближе 500м, собирайтесь" ; 500.wav ; false
в эту таблицу периодически падает инфа о информируемом номере и типе информирования.
если заполнено поле message, то отправить смс с этим текстом, если заполнено поле ring, проиграть соответствующий файл.
последнее поле "ok" - если true то оповещение прошло успешно, не оповещать.
как астериску с периодичностью например раз в секунду обрабатывать эту табличку?
подскажите в какую сторону копать.....
_________________
asterisk 1.8 ubuntu 11.10
2) Создавать самим call-файлы
3) AMI
4) Фоновый сервер, в цикле делающий что нужно.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
вы мне предлагаете изучить и опробовать все 4 варианта?
я ведь не спросил какие способы существуют....
я попросил посоветовать один способ, который проще\лучше подойдёт в данной ситуации.
кстати буду благодарен за ссылочку где про этот способ почитать.....
Added after 6 minutes:
перефразирую немного вопрос...
форумчане, которые уже делали что либо подобное, отзовитесь, нужна помощь.....
_________________
asterisk 1.8 ubuntu 11.10
| Цитата: |
| зачем писать 4 варианта? вы мне предлагаете изучить и опробовать все 4 варианта? форумчане, которые уже делали что либо подобное, отзовитесь, нужна помощь..... |
Я думаю Вам стоит обратится в раздел Бизнес.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
_________________
asterisk 1.8 ubuntu 11.10
Во-вторых, ведь данные кто-то заводит в базу? Значит в приложении есть ювозможность и звонок сделать.
Однозначно вариант.с астериск менеджером. Колл файлы нестабильна и со временем астериск, до перегрузки, перестает обрабатывать.
Если вы не можете вызвать скрипт генерации звонка, а надо обработать базу - пишите фоновый сервер, благо там всего строк 5 кода, ну 10, если на баш шелле.
после смены колл файлов на астериск менеджер, система стала заметно стабильнее.
Added after 3 minutes:
по теме, подумал, самое то - сервер, что постоянно берет записи из базы, найденные обрабатывает, формирует запрос к менеджеру, колл файлы или astcli (asterisk -rx) originate SIP/trunk/customer extension notify@notify_extension
сервер такой может быть на чем угодно - начиная от баш шелла, подождал секунду, запросил из базы данные и вперед.
Ну а автору выбрать один из вариантов от aven и andyk74 и реализовать это в силу своих возможностей ибо всё выше перечисленное работает.
Насчет call-файлов и у меня проблем не возникало. Но с оговоркой: должна быть ЧЕТКО продумана логика работы генератора-сервера. Пишется программа-сервер (на чем угодно) с флагами/контролем/... т.е. любым из придуманных способов аналитики текущего состояния и т.д. А простое безконтрольное автосрабатывание - путь в никуда.
Кроме всего прочего - не забывайте что ВАЖНО вести учет и дозвона и контролировать дозвонились/нет.
Так что простым наскоком сие не решить.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
А - контроль транков, LCR и все прочее было. И единственное изменение - файлов на астериск менеджер - систему сделал много стабильнее.
1. выбрал AMI
2. в постгресе сделал таблицу
CREATE TABLE ami
(
id serial NOT NULL,
to_asterisk character varying,
from_asterisk character varying,
status boolean,
CONSTRAINT asterisk_manager_id_pk PRIMARY KEY (id )
)
3. в поле to_asterisk записываются данные типа
Action: Events
EventMask: off
поле статус на этом этапе null
напишу на яве прослойку, которая раз в секунду будет делать
1. select into id_, to_ast id, to_asterisk from ami where status isnull; -- запрос данных
2. отправка данных в AMI
3. update ami set status=false where id=id_; -- пометка, что запись отослана на астериск
также постоянно слушаться порт от AMI и всё услышанное
insert into ami (from_asterisk) values (то что услышал от астериска)
поделитесь скриптом на bash (bash не знаю)
интересно посмотреть как такое на bash можно сделать
_________________
asterisk 1.8 ubuntu 11.10