Страница 1 из 2
Маршрутизация вызовов. (очереди)
Добавлено: 07 апр 2016, 11:07
aleksashechka
Добрый день.
Подскажите, есть ли возможность настроить маршрутизацию звонка в очередь по входящему номеру телефона (по целому списку)?
Во FreePBX можно настроить маршрутизацию по CID, но прописывать 150 маршрутов для 150 номеров не самый удобный вариант.
п.с. маршрутизация по cidname как одно из решений не подходит, очень хотелось бы именно по cid.
Re: Маршрутизация вызовов. (очереди)
Добавлено: 07 апр 2016, 11:25
ded
Надо делать такую фичу - cidlookup
заготовки для неё во FreePBX есть, и надо её только чуть подрихтовать по условию: входящий обрабатыватся стандартно через cidlookup, и если есть в списке - кидает куда надо, а если нет - кидает куда не надо.
Re: Маршрутизация вызовов. (очереди)
Добавлено: 07 апр 2016, 11:38
aleksashechka
У меня cidlookup настроен, определение имени по номеру из asterisk phonebook.
Весь вопрос в том как заставить asterisk смотреть какой то другой список номеров, который к примеру я храню в файлике, а уже потом согласно правилу перенаправлять по разным очередям.
Re: Маршрутизация вызовов. (очереди)
Добавлено: 07 апр 2016, 12:38
gland
Как вариант, хранить в mysql, запрашивать через agi. У меня в одном из сервисов так проверяется принадлежность номера к тому или иному оператору (слито с россвязи) + проверка на уход из "мобильного рабства". Уход от оператора проверяется раз в сутки скриптом, парсящим детализацию в кабинете. Некоторых операторов пока не осилил, забиваю руками, детализация только файлом, руки пока не дошли.
Re: Маршрутизация вызовов. (очереди)
Добавлено: 08 апр 2016, 14:35
aleksashechka
Вариант хранения в mysql как то мне не очень нравится, т.е. при каждом входящем звонке будет производится соединение(каждый звонок новое) с базой. А если к примеру писать информацию в astdb "/queuenumber/1234 номер телефона" и в случае совпадения номера телефона маршрутизировать вызов в нужную очередь. Вот только я не догоняю как бы мне прописать такой макрос чтоб выполнял проверку.
Re: Маршрутизация вызовов. (очереди)
Добавлено: 08 апр 2016, 14:43
gland
А чем вам не нравится mysql в качестве источника данных? Переживаете за его производительность? У вас астериск первее ляжет, чем mysql
Хотя чего я, хозяин-барин
Re: Маршрутизация вызовов. (очереди)
Добавлено: 08 апр 2016, 15:12
ded
aleksashechka писал(а):Вариант хранения в mysql как то мне не очень нравится, т.е. при каждом входящем звонке будет производится соединение(каждый звонок новое) с базой. А если к примеру писать информацию в astdb "/queuenumber/1234 номер телефона" и в случае совпадения номера телефона маршрутизировать вызов в нужную очередь.
А тот факт, что при каждом входящем звонке уже производится соединение (каждый звонок новое) с базой CDR MySQL Вас не настораживает?
А тот факт, что писать информацию в astdb - это тоже соединение с базой, только не MySQL, а другой, Вас не удивляет?
Re: Маршрутизация вызовов. (очереди)
Добавлено: 08 апр 2016, 15:22
aleksashechka
Как то я мыслю видать не додумал, пардон. Буду думать дальше.
Re: Маршрутизация вызовов. (очереди)
Добавлено: 11 апр 2016, 19:42
aleksashechka
Вот я тут сделал простое решение проблемы.
1) Создал таблицу в MySql в бд asteriskcdrdb (создал именно в этой бд т.к. астериск всегда держит с ней коннект)
CREATE TABLE IF NOT EXISTS `route` (
`incnum` varchar(80) NOT NULL,
`distnum` varchar(80) NOT NULL
);
2) В файле /etc/asterisk/func_odbc.conf создал функцию (у меня FreePBX. данного конфига не было, создал ручками)
[GET_ROUTE] ;
dsn=asteriskcdrdb;
readsql=SELECT distnum FROM route WHERE incnum='${ARG1}' ;
3) поправил входящий транк (он у меня один, настроен через шлюз quintum)
exten => _.,1,Gosub(cidlookup,cidlookup_2,1)
exten => _.,n,Set(GROUP()=OUT_2)
exten => _.,n,Set(DNUMB=${ODBC_GET_ROUTE(${CALLERID(num)})})
exten => _.,n,Gotoif($["${EXTEN}"="номер колл-центра"]?(from-trunk-sip-Tenor,999))
exten => _.,n,Goto(from-trunk,${EXTEN},1)
exten => _.,999,ExecIf($["${DNUMB}" !=""]?Goto(from-internal,${DNUMB},1))
exten => _.,n,ExecIf($["${DNUMB}" = ""]?Goto(from-internal,номер дефолтной очереди,1))
Хотел узнать ваше мнение по данному вопросу, схема работает. Вот только на сколько это правильно не знаю.
По сути я могу рулить маршрутизацией по очередям меня данные в mysql таблице.
Re: Маршрутизация вызовов. (очереди)
Добавлено: 12 апр 2016, 01:00
gland
Это почти ничем, кроме нативности, абсолютно ничем, кроме производительности и абсолютно всем,кроме применимости извне отличается от mysql
PS Яне к тому, что это плохо. просто это малопереносимо. отсудо ноги поста