Страница 1 из 4

Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 12 фев 2016, 15:11
Dangerous13
Прошу помощи.
Имеется сервер с Elastix 4+ FreePBX 2.10 + Asterisk 11. Есть несколько транков. Вызовы на них приходят по разному. Какие-то вызовы попадают сначала на IVR а потом на очередь, какие-то сразу на очередь.
Необходимо сделать так:
1. Вызов приходит на очередь или ivr. Запоминается номер звонящего.
2. Оператор отвечает на звонок. Запоминается номер оператора ответившего на звонок.
3. Если в течении суток или двух снова звонит этот-же человек, то он попадает на оператора который с ним разговаривал ранее.

Нашёл такие реализации в интернете:
http://habrahabr.ru/post/204048/
http://habrahabr.ru/post/270125/
http://awsswa.livejournal.com/12073.html
http://asterisk-support.ru/question/141 ... poslednii/.
Но не понимаю как адаптировать это под наши нужды.

Нужно реализовать это для 5ти очередей.

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 12 фев 2016, 15:59
ded
не понимаю как адаптировать это под наши нужды => в раздел Бизнес, платный суппорт.
Как ещё объяснять? awsswa запилил всё красиво, подробная инструкция, но - Вы не понимаете. Делать подробное объяснение каждому, кто не понимает инструкцию? Несправедливо.

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 12 фев 2016, 16:23
Dangerous13
На меня спихнули телефонию и по мере возможности я ей рулю. Перенёс с древнего астреиска 1.Х на более-менее новый 11, адаптировал все дополнительные скрипты которые там крутились. Но внедрить что-то новое мне проблематично.
Платный суппорт не подходит, одна надежда только безвозмездную помощь. Но как я понимаю, вместо помощи людям проще послать курить маны или в магазин. А просто сказать куда это впихнуть и как связать с FreePBX сложно. Какой смысл тогда от форумов? Маны курил но мне проще по реальным примерам.

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 12 фев 2016, 16:40
Dangerous13
Что я делаю не так?

Заношу запись
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: CONTEXT
[from-test]
exten => _X.,1,Set(CHANNEL(language)=ru)
exten => _X.,n,Set(CALLID=${CALLERID(num):-7})
exten => _X.,n,MYSQL(Connect connidcdr localhost root Fufnfrhbcnb asteriskcdrdb utf8)
; Для всех вызовов
exten => _X.,n,MYSQL(Query resultidcdr ${connidcdr} SELECT * FROM cdr WHERE dst LIKE '%${CALLID}%' ORDER BY calldate DESC)
; Для неотвеченных вызовов
; 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},20,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,${DID},1)
exten => h,1,hangup()
в файл extensions_override_freepbx.conf. Перезагружаю dialplan:

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

*CLI> dialplan reload 
Проверяю:

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

*CLI> dialplan show from-test 
[ Context 'from-test' created by 'pbx_config' ]
  'h' =>            1. hangup()                                   [pbx_config]
  '_X.' =>          1. Set(CHANNEL(language)=ru)                  [pbx_config]
                    2. Set(CALLID=${CALLERID(num):-7})            [pbx_config]
                    3. MYSQL(Connect connidcdr localhost root Fufnfrhbcnb asteriskcdrdb utf8) [pbx_config]
                    4. MYSQL(Query resultidcdr ${connidcdr} SELECT * FROM cdr WHERE dst LIKE '%${CALLID}%' ORDER BY calldate DESC) [pbx_config]
                    5. MYSQL(Fetch fetchid ${resultidcdr} calldate clid src dst) [pbx_config]
                    6. set(number=${src})                         [pbx_config]
                    7. NoOp(кто звонил --> ${clid} кому звонил --> ${dst}) [pbx_config]
                    8. GOTOIF($["${dst}" = ""]?nodst:dst)         [pbx_config]
     [dst]          9. MYSQL(Clear ${resultidcdr})                [pbx_config]
                    10. MYSQL(Disconnect ${connidcdr})            [pbx_config]
                    11. dial(SIP/${number},20,tT)                 [pbx_config]
                    12. GotoIf($["${DIALSTATUS}" = "BUSY"]?nodst) [pbx_config]
                    13. GotoIf($["${DIALSTATUS}" = "NOANSWER"]?nodst) [pbx_config]
                    14. GotoIf($["${DIALSTATUS}" = "FAILED"]?nodst) [pbx_config]
     [nodst]        15. MYSQL(Clear ${resultidcdr})               [pbx_config]
                    16. MYSQL(Disconnect ${connidcdr})            [pbx_config]
                    17. goto(from-trunk,${DID},1)                 [pbx_config]

-= 2 extensions (18 priorities) in 1 context. =-
Как теперь заставить вызов попасть на созданный контекст? Изменять настройки транка? У меня все транки настроены на с context=from-trunk

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 12 фев 2016, 16:55
ded
Dangerous13 писал(а): Какой смысл тогда от форумов? .
Напомню - соглашение при регистрации:
Для чего нужен форум?

Форум нужен для того, чтобы Вы САМИ нашли ответ на свой вопрос.


Форум нужен для того, чтобы Вы САМИ опубликовали на нем ответ на вопрос, интересный многим.
Ваш вопрос может быть не интересен остальным, даже если Вы его таким называете. Вы можете называть свой вопрос интересным для того, чтобы убедить других в необходимости решить за Вас Вашу проблему. Глупо надеяться, что другие не знают об этом. Вопрос может быть интересен тогда и только тогда, когда ответ на этот вопрос еще не найден, например, в других топиках данного форума или на других сайтах. Если ответ уже где-то описан, то он не может быть интересным. Если вопрос может быть интересным, то это не означает, что он является интересным. Ответы на стандартные вопросы, которые можно найти в документации – это побочный эффект, а не обмен знаниями или опытом. «Обмен знаниями» подразумевает, что Вы не только получаете знания, но и что-то даете взамен.

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 12 фев 2016, 17:14
ded
Dangerous13 писал(а):Что я делаю не так?
Всё делаете не так. Проще сказать - что так? Правильно только копипаста получается, и всё. Остальное - в мусорку.
Зачем пытаться поднять танк? Если он не по плечу? Зачем Вы берётесь за задачи, которые не понимаете? Есть на свете задача, которую. свалят на вас, и Вы откажетесь =- "Не, это я точно не смогу!"? Найдите границу своих возможностей, иначе засоряете форум бессмыслицей.
Заношу запись в файл extensions_override_freepbx.conf.
Почему туда? Почему не в /tmp куда нибудь? Или к себе в телефонную книжку?
Надо в extensions_custom.conf
обозвать не [from-test] а [from-trunk-custom]

Я вот не понимаю, зачем люди вообще какие-то книги пишут по Астериску, инструкции как настроить, если есть форумы? А?

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 13 фев 2016, 09:10
virus_net
[offtop]
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Присоединяюсь к ded.
Dangerous13 писал(а):На меня спихнули телефонию и по мере возможности я ей рулю.
Вот я реально хочу понять/осознать для себя такие моменты:
А если бы уволилась/уволили уборщицу и на вас спихнули её обязанности ? Вы бы покорно согласились и пошли драить ?
А о чем вы думали, когда соглашались тянуть на себе сей вопрос ? О том что "оно само" будет работать и разбираться не надо ? О том что на форуме помогут сделать вашу работу на которую вы согласились ?
А почему вы считаете, что эта фраза оправдывает то, что вы не открывали и не собираетесь открывать документацию ? ("Маны" это НЕ статьи/посты на форумах и блогах)

ТС просветите меня по данным вопросам ?

P.S. При чтении подобного сразу вспоминается это: Если бы на медицинских форумах общались так же, как везде
Было бы очень смешно, если бы не было так грустно. Ведь реально страшно... куда мы катимся...
"Я вообще строю ракеты, но на меня спихнули хирургию."
"Я вообще автомеханик, но на меня спихнули разработку/сборку/наладку искусственных сердец."
И т.п.
[/offtop]

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 13 фев 2016, 13:43
Wapo
Вот я реально хочу понять/осознать для себя такие моменты:
ТС-а жалко ("плачет по ней палка") Его проблема не в понимании, а в данном случае, в GUI (PBX-Elastiks и т.д.)

Энто лирика - ответ:
1. команда asterisk -vvvr - смотрим как звонок идет
2. читаем книгу и понимает что есть диалплан
3. делаем кастомные файлы конфигурации по описанным ИНСТРУКЦИЯМ.

P.S. А проще: выкинуть нафиг GUI, разобраться самому и ... крутить КАК захочется!!!

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 13 фев 2016, 15:38
whoim
Wapo, зачастую нет смысла "крутить как хочется", тратя на разработку и отладку диаплана сутки работы дорогого специалиста, если задача решаема средствами гуи, хотя бы частично.
Приведите мне популярную задачу, которая не под силу freepbx?

Вы же не собираете себе сами автомобиль, чтобы крутить его как хотеть?
Больная тема кстати, новые законы. По ним нужно детские кресла регистрировать как изменение конструкции ТС для старых авто, у кого в инструкции не упомянуты эти кресла.

Re: Elastix+FreePBX+Asterisk Звонок своему оператору

Добавлено: 13 фев 2016, 15:40
whoim
Задача автора решается модулем smartroutes и sql-запросом к таблице cdr базы asteriskcdrdb. Из гуи за 10 минут.