ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Follow me и Realtime (mysql)

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

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

Follow me и Realtime (mysql)

Сообщение BellLabs » 24 мар 2011, 18:55

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

Re: Follow me и Realtime (mysql)

Сообщение BellLabs » 25 мар 2011, 14:53

кажись разобрался, все просто, но не прозрачно в 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`)
);


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

Re: Follow me и Realtime (mysql)

Сообщение ded » 25 мар 2011, 15:53

Дык, эта, с веб морды можно каждому юзеру прописывать и без механизма realtime.
Или это вынесли в юзерский менеджмент? Чтобы каждый сам себе?
Порядку не будет.
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Follow me и Realtime (mysql)

Сообщение BellLabs » 25 мар 2011, 17:01

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

Насчет порядка пока не знаю, посмотрим какие проблемы возникнут потом.
Возникла проблема с followme: когда вызов переадресуется, то другому абоненту, чтобы принять нужно ввести код (цифра 1 по умолчанию), а это не всегда удобно, особенно если абонент принимает вызов на смартфон без кнопок. Было бы здорого найти "галку", которая бы отключала эту фичу и вызов приходил бы без всяких аннонсментов.
BellLabs
 
Сообщений: 17
Зарегистрирован: 22 мар 2011, 14:28

Re: Follow me и Realtime (mysql)

Сообщение ded » 25 мар 2011, 17:54

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

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

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

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

А третьему - последовательный обзвон
13
23
9012345678#
В таком варианте ему не надо нажимать никакую единицу. И если смартфон выключен, свонок перейдёт на мобильный его жены - 9012345678.
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Follow me и Realtime (mysql)

Сообщение BellLabs » 26 мар 2011, 23:43

Я использую * без надстроек. Не знаю как реализовано в freePBX. Но в * есть аппликация followme, которая работает вот таким образом, что при звонке абоненту предлагает ему ввести цифры. Вопрос в том, есть ли пути изменить такой сценарий этого приложения, или нужно лезть в код приложения и в нем разбираться? Хотя можно реализовать переадресации и средствами диалплана.
BellLabs
 
Сообщений: 17
Зарегистрирован: 22 мар 2011, 14:28

Re: Follow me и Realtime (mysql)

Сообщение IgorG » 27 мар 2011, 07:24

У штатного приложения нет возможности изменить сценарий так, чтобы отключить запрос подтверждения. Нужно смотреть в исходном коде, либо при соединении вызова изощряться с SendDTMF
Аватар пользователя
IgorG
 
Сообщений: 37
Зарегистрирован: 03 сен 2010, 13:08
Откуда: Омск

Re: Follow me и Realtime (mysql)

Сообщение BellLabs » 29 мар 2011, 11:21

Спасибо 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 было бы изящнее.
BellLabs
 
Сообщений: 17
Зарегистрирован: 22 мар 2011, 14:28

Re: Follow me и Realtime (mysql)

Сообщение Obi Van » 29 мар 2011, 14:18

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

Re: Follow me и Realtime (mysql)

Сообщение BellLabs » 29 мар 2011, 14:50

Obi Van, я тоже от самсунговской логики отталкивался, единственно я тут проверку на пустые dialstr не вставил, от чего * может загнуться, когда увидит Dial(SIP/,120). Позже напишу код для активации и внесения переадресаций разных типов с телефонных аппаратв, а то как-то не полно выходит. В итоге получим в плане переадресаций функционал АТС + возможность изменять параметры с веб морды.
BellLabs
 
Сообщений: 17
Зарегистрирован: 22 мар 2011, 14:28

След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 29

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH