Перейти к содержимому
Калькуляторы

Как сделать чтобы клиен перезванивал последнему звонившему Elastix 4

Работники звонят клиентам на мобильные но не всегда дозваниваются, когда клиенты перезванивают на номер организации то не понятно кто звонил и кому переводить звонок.

Собственно вопрос: Как сделать так чтобы клиент попадал сразу к нужному человеку , а если сегодня ему никто не звонил то направить звонок на IVR или секретаря. С направлением в меню или на внутренний номер проблем нет, это работает. Надо только чтобы секретарь не думала на кого переключить. Просто один клиент может пользоваться услугами разных отделов и звонить ему могут все. Исходящий номер на мобильные только один и купить ещё несколько по количеству отделов не вариант ибо интенсивность звонков не большая и все успевают поговорить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обсуждали этот кейс в кулуарах Астерконф.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как то попадалось мне такое обсуждение в интернете, но тогда про IP телефонию в конторе разговоров не велось и внедрение не планировалось.

А сейчас не могу вспомнить по каким ключевым словам поиск вести.

Хотя бы направление поиска, ключевые слова. Там уж наверное и докапаюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В Yeastar видел такой функционал. AutoCLIP называется, по русски - "прилипание", "умная маршрутизация".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По идее можно просто при входящем звонке слазить в базу в CDR запросом кто посл. звонил на номер

звонящего за скажем 3 часа. И на основании результата повернуть звонок куда надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну я планировал  на офисной атс нарисовать связку из unixtime - callerid - exten - dial state при ${DIALSTATUS} = (BUSY||NOANSWER) и при входящем  от exten проверять состояние этой связи и отправлять вызов на внутренний номер, при неответе внутреннего - играть фразу перезвоните позже, а при ответе удалять связку unixtime - callerid - exten - dial state

Но у меня беда в том что вызовы идут не только через *, а еще и через старую LDK 300 (Е1 между станциями через циску, город через fxo). Причем основной станцией для 9 служит именно LDK 300 и только когда на ней нет свободных fxo выход идет через sip на *. А на городских аналоговых включен антиаон.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Долго возился, поскольку телефонию кручу по большей части для самообразования. Хорошо начальство начинание поддерживает, в итоге решил свою проблему следующим образом: (найдено на просторах интернета с небольшими правками)

Добавляем в extensions_custom.conf следующее:

[from-trunk-gsmin]
  exten => _X.,1,Set(CHANNEL(language)=ru)
  exten => _X.,n,Set(CALLID=${CALLERID(num):-10})
  exten => _X.,n,MYSQL(Connect connidcdr localhost root 1 asteriskcdrdb utf8)
; Для всех вызовов за последние 12 часов , как раз кто зонил сегодня.
  exten => _X.,n,MYSQL(Query resultidcdr ${connidcdr} SELECT * FROM cdr WHERE dst LIKE '%${CALLID}%' AND calldate > NOW() - INTERVAL 12 HOUR ORDER BY calldate DESC LIMIT 1)
; Для неотвеченных вызовов
;   exten => _X.,n,MYSQL(Query resultidcdr ${connidcdr} SELECT * FROM cdr WHERE dst LIKE '%${CALLID}%' AND disposition LIKE 'NOANSWER' ORDER BY calldate DESC)
  exten => _X.,n,MYSQL(Fetch fetchid ${resultidcdr} calldate clid src dst)
  exten => _X.,n,set(number=${src})
  exten => _X.,n,NoOp(кто звонил --> ${clid} кому звонил --> ${dst}) ; вот и узнали кто кому звонил
  exten => _X.,n,GOTOIF($["${dst}" = ""]?nodst:dst)
  exten => _X.,n(dst),MYSQL(Clear ${resultidcdr})
  exten => _X.,n,MYSQL(Disconnect ${connidcdr})
  exten => _X.,n,dial(SIP/${number},tT) ; звоним внутреннему абоненту
  exten => _X.,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?nodst)
  exten => _X.,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?nodst)
  exten => _X.,n,GotoIf($["${DIALSTATUS}" = "FAILED"]?nodst)
  exten => _X.,n(nodst),MYSQL(Clear ${resultidcdr})
  exten => _X.,n,MYSQL(Disconnect ${connidcdr})
  exten => _X.,n,goto(from-trunk,101,1) ; ну и если он не отвечает то пускаем звонок секретарю (пускай работает)
  exten => h,1,handup()

Создал custom destination

2018-11-06_21-56-50.png.aeb5f93c5c6737f5c4b2a967a323d8fa.png

и настроил входящий маршрут на это назначение , вот уже неделю вроде как работает, по крайней мере народ не жалуется и к человеку назначенному мной секретарём входящих с вопросом кто звонил звонков меньше.

 

 

Забыл написать что у меня Elastix 4, и конечно приму критику по существу вопроса.

Наверняка можно либо упростить или всё таки чтото не совсем верно записано.

Изменено пользователем danila77
орфография

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

WHERE dst LIKE '%${CALLID}%'
Лучше WHERE dst='${CALLID}', и проверить есть ли индекс на dst.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, disappointed сказал:

проверить есть ли индекс на dst

А это где посмотреть?

Запрос поправлю конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, danila77 сказал:

А это где посмотреть?

Запрос поправлю конечно.

Если запросом то

SHOW INDEX FROM cdr

Если phpmyadmin то там ну таблицу открыть, Структура и внизу.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас