VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Follow me и Realtime (mysql)

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

BellLabs
Сообщения: 17
Зарегистрирован: 22 мар 2011, 13:28

Follow me и Realtime (mysql)

Сообщение BellLabs »

Кто-нибудь реализовывал? Какие таблицы использовали и как указать, что follow me формируется динамически?
BellLabs
Сообщения: 17
Зарегистрирован: 22 мар 2011, 13:28

Re: Follow me и Realtime (mysql)

Сообщение BellLabs »

кажись разобрался, все просто, но не прозрачно в extconfig.conf добавляем 2 строчки

Код: Выделить всё

followme => mysql,general,followme
followme_numbers => mysql,general,followme_numbers
в этом файле followme не упоминается, об это и споткнулся.

Далее добавляем две таблицы в mysql

Код: Выделить всё

CREATE TABLE `followme` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(100) default NULL,
  `musicclass` char(100) NOT NULL default 'default',
  `context` char(100) default NULL,
  `takecall` int(11) default '1',
  `declinecall` int(11) default '2',
  `call_from_prompt` char(100) NOT NULL default 'followme/call-from',
  `norecording_prompt` char(100) NOT NULL default 'followme/no-recording',
  `options_prompt` char(100) NOT NULL default 'followme/options',
  `pls_hold_prompt` char(100) NOT NULL default 'followme/pls-hold-while-try',
  `status_from_prompt` char(100) NOT NULL default 'followme/status',
  `sorry_prompt` char(100) NOT NULL default 'followme/sorry',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
);

CREATE TABLE `followme_numbers` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` char(100) default NULL,
  `ordinal` int(4) DEFAULT '1',
  `phonenumber` char(250) default NULL,
  `timeout` int(4) default '15',
  PRIMARY KEY (`id`)
);
И теперь с веб морды можно каждому юзеру прописывать переадресации разного вида, хоть одновременный вызов на домашний и сотовый.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Follow me и Realtime (mysql)

Сообщение ded »

Дык, эта, с веб морды можно каждому юзеру прописывать и без механизма realtime.
Или это вынесли в юзерский менеджмент? Чтобы каждый сам себе?
Порядку не будет.
BellLabs
Сообщения: 17
Зарегистрирован: 22 мар 2011, 13:28

Re: Follow me и Realtime (mysql)

Сообщение BellLabs »

Мне удобно было использовать mysql, а какие вы предложили бы способы?

Насчет порядка пока не знаю, посмотрим какие проблемы возникнут потом.
Возникла проблема с followme: когда вызов переадресуется, то другому абоненту, чтобы принять нужно ввести код (цифра 1 по умолчанию), а это не всегда удобно, особенно если абонент принимает вызов на смартфон без кнопок. Было бы здорого найти "галку", которая бы отключала эту фичу и вызов приходил бы без всяких аннонсментов.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Follow me и Realtime (mysql)

Сообщение ded »

Я не совсем видимо понял в чём трудность.
Стандартно followme реализуется, например, средствами вэб менеджмента freePBX.
Для каждого внутреннего номера она представляет собой как-бы микро ринг-группу, с различными сценариями дозвона.
Предположим, что офисные стационарные телефоны имеют вид
11
12
13

Предположим, что у всех в кармане ещё и смартфоны, зарегистрированные на том же Астериске
21
22
23

Ну и для разнообразия - у всех домашние номера, также зарегистрированные на том же Астериске.
31
32
33

Тогда абонент у которого не включена опция followme будет иметь мини-ринг-группу из одного номера 11.
Второму включим followme и добавим и смартфон, и рабочий, сделаем сценарий ring all
12
22
32

А третьему - последовательный обзвон
13
23
9012345678#
В таком варианте ему не надо нажимать никакую единицу. И если смартфон выключен, свонок перейдёт на мобильный его жены - 9012345678.
BellLabs
Сообщения: 17
Зарегистрирован: 22 мар 2011, 13:28

Re: Follow me и Realtime (mysql)

Сообщение BellLabs »

Я использую * без надстроек. Не знаю как реализовано в freePBX. Но в * есть аппликация followme, которая работает вот таким образом, что при звонке абоненту предлагает ему ввести цифры. Вопрос в том, есть ли пути изменить такой сценарий этого приложения, или нужно лезть в код приложения и в нем разбираться? Хотя можно реализовать переадресации и средствами диалплана.
Аватара пользователя
IgorG
Сообщения: 37
Зарегистрирован: 03 сен 2010, 13:08
Откуда: Омск
Контактная информация:

Re: Follow me и Realtime (mysql)

Сообщение IgorG »

У штатного приложения нет возможности изменить сценарий так, чтобы отключить запрос подтверждения. Нужно смотреть в исходном коде, либо при соединении вызова изощряться с SendDTMF
BellLabs
Сообщения: 17
Зарегистрирован: 22 мар 2011, 13:28

Re: Follow me и Realtime (mysql)

Сообщение BellLabs »

Спасибо IgorG. Разбираться в коде приложения пока нет времени, тем более я с СИ не знаком. Но было бы хорошо, если бы в конфиге followme.conf была опция включения/выключения запроса подтверждения. Я реализовал переадресации средствами диалплана:
Сделал БД с полями: тип переадресации, диал строка для переадресации 1 типа (безусловная), диал строка для переадресации 2 типа (по занято), диал строка для переадресации 3 типа (по неответу), диал строка для переадресации 4 типа (по неответу/занято), строка для почтового ящика. Тип переадресации: 0 - нет переадресаций, 1 - безусловная, 2 - переадресация по занято, 3 - переадресация по неответу, 4 - по занято и неответу, 5 - на почтовый ящик.
В extensions.conf

Код: Выделить всё

exten=>_3XX,1,Set(__DYNAMIC_FEATURES=tefe)
exten=>_3XX,n,Set(__CHANNEL(language)=ru)
exten=>_3XX,n,MYSQL(Connect connid 127.0.0.1 myuser mypassword mybase)
exten=>_3XX,n,MYSQL(Query resultid ${connid} SELECT type, dialstr1, dialstr2, dialstr3, dialstr4, vm FROM `forward` WHERE `ext`=${EXTEN})
exten=>_3XX,n,MYSQL(Fetch fetchid ${resultid} type dialstr1 dialstr2 dialstr3 dialstr4 vm)
exten=>_3XX,n,MYSQL(Clear ${resultid})
exten=>_3XX,n,MYSQL(Disconnect ${connid})
exten=>_3XX,n,Macro(fordial,${type},${dialstr1},${dialstr2},${dialstr3},${dialstr4},${vm})
Ну и макрос

Код: Выделить всё

[macro-fordial]
exten=>s,1,Goto(s-${ARG1},1)

exten=>s-0,1,Dial(SIP/${MACRO_EXTEN},120,TthHKkmw)
exten=>s-0,n,Hangup()

exten=>s-1,1,Dial(SIP/${ARG2},120,Tt)
exten=>s-1,n,Hangup()

exten=>s-2,1,Dial(SIP/${MACRO_EXTEN},10,TthHKkmw)
exten=>s-2,n,GotoIf($["${DIALSTATUS}"="BUSY"]?:end)
exten=>s-2,n,Dial(SIP/${ARG3},120,Tt)
exten=>s-2,n(end),Hangup()

exten=>s-3,1,Dial(SIP/${MACRO_EXTEN},10,TthHKkmw)
exten=>s-3,n,GotoIf($["${DIALSTATUS}"="NOANSWER"]?:end)
exten=>s-3,n,Dial(SIP/${ARG4},120,Tt)
exten=>s-3,n(end),Hangup()

exten=>s-4,1,Dial(SIP/${MACRO_EXTEN},10,TthHKkmw)
exten=>s-4,n,Dial(SIP/${ARG5},120,Tt)

exten=>s-5,1,Dial(SIP/${MACRO_EXTEN},10,TthHKkmw)
exten=>s-5,n,Voicemail(${MACRO_EXTEN},${ARG6})


Все работает, проверено. Если будут идеи по оптимизации, пишите. Написал на скорую руку. С followme было бы изящнее.
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: Follow me и Realtime (mysql)

Сообщение Obi Van »

BellLabs
Читаю и улыбаюсь, т.к сам реализовал практически 100% схожую систему с пол-годика назад. Просто отталкивался от логики работы этого функционала в нашей офисной Samsung OS500. Далее всё как у вас. Единственного чего нет, так это голосовой почты и реализация в рингплане сделана немного по другому. Ну а так тоже самое. Работает очень хорошо. Посему и непонятно. стоит ли вообще ковырять приложение FollowMe? :?
И мне кажется можно вполне себе сделать очень круто и дальше развивая эту концепцию. 8-)
BellLabs
Сообщения: 17
Зарегистрирован: 22 мар 2011, 13:28

Re: Follow me и Realtime (mysql)

Сообщение BellLabs »

Obi Van, я тоже от самсунговской логики отталкивался, единственно я тут проверку на пустые dialstr не вставил, от чего * может загнуться, когда увидит Dial(SIP/,120). Позже напишу код для активации и внесения переадресаций разных типов с телефонных аппаратв, а то как-то не полно выходит. В итоге получим в плане переадресаций функционал АТС + возможность изменять параметры с веб морды.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH