danila77 Posted October 8, 2018 Posted October 8, 2018 Работники звонят клиентам на мобильные но не всегда дозваниваются, когда клиенты перезванивают на номер организации то не понятно кто звонил и кому переводить звонок. Собственно вопрос: Как сделать так чтобы клиент попадал сразу к нужному человеку , а если сегодня ему никто не звонил то направить звонок на IVR или секретаря. С направлением в меню или на внутренний номер проблем нет, это работает. Надо только чтобы секретарь не думала на кого переключить. Просто один клиент может пользоваться услугами разных отделов и звонить ему могут все. Исходящий номер на мобильные только один и купить ещё несколько по количеству отделов не вариант ибо интенсивность звонков не большая и все успевают поговорить. Вставить ник Quote
telecom Posted October 9, 2018 Posted October 9, 2018 Обсуждали этот кейс в кулуарах Астерконф. Вставить ник Quote
danila77 Posted October 11, 2018 Author Posted October 11, 2018 Как то попадалось мне такое обсуждение в интернете, но тогда про IP телефонию в конторе разговоров не велось и внедрение не планировалось. А сейчас не могу вспомнить по каким ключевым словам поиск вести. Хотя бы направление поиска, ключевые слова. Там уж наверное и докапаюсь. Вставить ник Quote
TheUser Posted October 11, 2018 Posted October 11, 2018 В Yeastar видел такой функционал. AutoCLIP называется, по русски - "прилипание", "умная маршрутизация". Вставить ник Quote
disappointed Posted October 11, 2018 Posted October 11, 2018 По идее можно просто при входящем звонке слазить в базу в CDR запросом кто посл. звонил на номер звонящего за скажем 3 часа. И на основании результата повернуть звонок куда надо. Вставить ник Quote
ShumBor Posted October 12, 2018 Posted October 12, 2018 Ну я планировал на офисной атс нарисовать связку из unixtime - callerid - exten - dial state при ${DIALSTATUS} = (BUSY||NOANSWER) и при входящем от exten проверять состояние этой связи и отправлять вызов на внутренний номер, при неответе внутреннего - играть фразу перезвоните позже, а при ответе удалять связку unixtime - callerid - exten - dial state Но у меня беда в том что вызовы идут не только через *, а еще и через старую LDK 300 (Е1 между станциями через циску, город через fxo). Причем основной станцией для 9 служит именно LDK 300 и только когда на ней нет свободных fxo выход идет через sip на *. А на городских аналоговых включен антиаон. Вставить ник Quote
danila77 Posted November 6, 2018 Author Posted November 6, 2018 (edited) Долго возился, поскольку телефонию кручу по большей части для самообразования. Хорошо начальство начинание поддерживает, в итоге решил свою проблему следующим образом: (найдено на просторах интернета с небольшими правками) Добавляем в 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 и настроил входящий маршрут на это назначение , вот уже неделю вроде как работает, по крайней мере народ не жалуется и к человеку назначенному мной секретарём входящих с вопросом кто звонил звонков меньше. Забыл написать что у меня Elastix 4, и конечно приму критику по существу вопроса. Наверняка можно либо упростить или всё таки чтото не совсем верно записано. Edited November 6, 2018 by danila77 орфография Вставить ник Quote
disappointed Posted November 6, 2018 Posted November 6, 2018 Цитата WHERE dst LIKE '%${CALLID}%' Лучше WHERE dst='${CALLID}', и проверить есть ли индекс на dst. Вставить ник Quote
danila77 Posted November 7, 2018 Author Posted November 7, 2018 5 часов назад, disappointed сказал: проверить есть ли индекс на dst А это где посмотреть? Запрос поправлю конечно. Вставить ник Quote
disappointed Posted November 7, 2018 Posted November 7, 2018 4 часа назад, danila77 сказал: А это где посмотреть? Запрос поправлю конечно. Если запросом то SHOW INDEX FROM cdr Если phpmyadmin то там ну таблицу открыть, Структура и внизу. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.