Это, вероятно, самый интересный вариант с возвратом вызова после “слепого” перевода. Зачастую необходимость перевести вызов на другого абонента возникает не только у секретаря. Представьте себе фирму (к примеру, тот же call-центр), в которой осуществляются консалтинговые услуги. При этом множество “секретарей” переводят вызовы на специалистов, специалисты могут переводить вызовы друг на друга, и зачастую нет времени (и желания) перевести вызов, а затем дожидаться на него ответа – а хочется перенаправить вызов на нужного сотрудника, чтобы в случае, если человека нет на месте (или он занят) вызов вернулся обратно автоматически. Таким образом, вызов должен возвращаться не “кому-нибудь”, а именно тому человеку, который его перевел.В этом случае для всех переводимых вызовов настраивается отдельный контекст, в котором они будут обрабатываться (задав значение переменной TRANSFER_CONTEXT). При этом контролируется, был ли ответ на этот переведенный вызов, и при необходимости (используя переменную BLINDTRANSFER) можно вернуть вызов тому абоненту, который осуществлял перевод вызова:
extensions_custom.conf
[globals]
TRANSFER_CONTEXT=blind_transfer_mikhed_ringback
[local_phones]
exten => _XXX,1,Answer()
exten => _XXX,n,Dial(SIP/${EXTEN},45,tT)
exten => _XXX,n,Hangup()
[blind_transfer_mikhed_ringback]
exten => _X.,1,NoOp("Blindtransfer: " ${BLINDTRANSFER})
exten => _X.,n,Set(ExtLength=${LEN(${EXTEN})}).
; ${BLINDTRANSFER} - это не оригинальный номер, а оригинальный канал, например:
; SIP/1111-433242424242
exten => _X.,n,Set(OrigNumber=${BLINDTRANSFER:4:${ExtLength}})
; было :4: поствил :6: и заработало
; делаем основной вызов:
exten => _X.,n,Dial(SIP/${EXTEN},45,tTg)
; если он удался, то завершаем вызов, если нет - возвращаемся к тому, кто переводил
; вызов:
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?hangup:callback)
exten => _X.,n(callback),Dial(local/${OrigNumber}@local_phones,45,tT)
; Обратите внимание: здесь делается только одна попытка вернуть вызов.
; Однако на самом деле к моменту возврата вызова сотрудник может быть уже занят.
; Так что имеет смысл делать несколько попыток, или перенаправлять вызовы куда-либо
; еще.
exten => _X.,n(hangup),Hangup().
Если в АТС не установлен данный модуль, то его возможно установить стандартными средствами через раздел FreePBX Admin > Module Admin.
Далее делаем базовый конфиг endpoint manager в settings – oss endpoint manager выбираем справа в меню settings
Красным помечено что нужно, остальное на ваше усмотрение.
Далее в меню выбираем package manager и жмем check for update
Появятся список всех доступных производителей и поддерживаемые модели телефонов. Жмем Install на против нужных производителей. Когда все установится включите нужные модели телефонов, в моем случае это yealink.
После этого нужно сделать 3 пункта.
Первое, идем в консоль и делаем fwconsole chown Второе подкидываем файл от платного Endpoint cp /var/www/html/admin/modules/endpointman/install/setup.php /var/www/html/admin/modules/_ep_phone_modules Третье создаем папку которой нет mkdir -p /var/www/html/admin/modules/_ep_phone_modules/temp/export/
Эти 3 пункта решат все проблемы с мелкими косяками которые могут возникнуть.
В большинстве случаев если ваши модели телефонов есть в списке, то чуть редактируем готовые конфиги (язык, callwaiting, language,timezone и т.д), затем делаем настройки dhcp сервера (В конце статьи) и все готово.
Те, у кого есть Yealink t19 описание ниже.
Возвращаемся обратно в settings в меню справа на вкладку product configuration editor Выбираем справа T1X models T18, Выбираем local file configs Там будет 2 файла:
y000000000000$suffix.cfg $mac.cfg
В разделе Local File Configs выбрать y0000000000$suffix.cfg — это общий конфигурационный файл для выбранной модели аппаратов. По умолчанию в нем довольно много параметров прописано. Но возможно их сократить. Достаточно прописать подобные строчки:
Качаем прошивку для телефона последнюю и кидаем ее на сервак в /tftpboot/ в корень и меняем, копипастим имя файла rom в шаблон что выше делали.
После этого конфиг сохраняем с именем, я сохранял под y000000000019.cfg не знаю влияет это на что-нить или нет.
Затем необходимо выбрать $mac.cfg — в нем необходимо внести изменения для шаблона индивидуального конфигурационного файла. В нем будут прописаны настройки для аккаунтов, под конкретный аппарат. (снова спизжено с voxlink.ru)
В поле sucurity.user_password = обязательно задайте пароль, этот пароль будет ставиться на вебморду телефона! Я этого не заметил когда делал и это было для меня сюрпризом. Файл я сохранил под именем mac_t19.cfg.
Сделали, теперь идем в меню справа выбираем template manager, жмем add new template Даем любое имя, я задал 19. Выбираем product Yealink T1X models, Выбираем clone template from T18, жмем save. Затем редактируем созданный шаблон. Выбираем справа edit file configurations выбираем файлы которые делали выше. Внизу заполняем по желанию всякие плюшки сохраняем.
На этом костыли закончили, идем в меню справа и выбираем extension mapping
Копипастим мак телефона в mac address, выбираем brand yealink, модель, линию, extension который закрепим за этим телефоном, выбираем наш шаблон 19 и жмем add.
По идее все должно работать и телефон после запуска должен получить все настройки.
Настраивать dhcp на микротике
У меня сеть 192.168.0.0/24 шлюз 192.168.0.1 IP астериска 192.168.0.242, вы подставите свои значения.
Все настройки делаются в Ip – dhcp-server. Последовательность на скриншоте.
После этого все должно работать. вкидываем в extension mapping все оставшиеся телефоны и наслаждаемся процессом, допиливаем нужный фукнционал шаблона и все.