628 просмотров
от (2.8 тыс. баллов) в категории Тонкая настройка
Я сделал настройку для работы VoiceMail для каждого отдельно сотрудника. Пока многовато ручного ввода, но как только время будет - сделаю более автоматически через AGI.

А пока вот так.

1. В приложении voicemail в диалпланах записываем модифицированный код:

1,Set(__VCEX=${CALLERID(dnid)}) ; сохраняем номер, с которого приходит перенаправление

n,Goto(voice_mail_peer_user,voicemail,1)

2. В кастомизации - existensions.conf добавляем в конец:

[voice_mail_peer_user]

exten => voicemail,1,Answer()

same => n,ExecIf($["${CHANNEL:0:5}" == "Local"]?Set(pl=${IF($["${CHANNEL:-1}" == "1"]?2:1)}))

same => n,ExecIf($["${CHANNEL:0:5}" == "Local"]?Set(bridgePeer=${IMPORT(${CUT(CHANNEL,\;,1)}\;${pl},BRIDGEPEER)}))

same => n,ExecIf($[ "${FROM_CHAN}" == "${bridgePeer}" ]?ChannelRedirect(${bridgePeer},${CONTEXT},${EXTEN},2))

same => n,AGI(/usr/www/src/Core/Asterisk/agi-bin/clean_timeout.php)

same => n,Gosub(voicemail_start,${VCEX},1)

same => n,VoiceMail(${VCEX}@voicemailcontext)

same => n,Hangup()

exten => h,1,Gosub(voicemail_end,${VCEX},1)

same => n,Hangup()

3. В кастомизации в voicemail.conf добавляем в конец:

[voicemailcontext](+)

{внутрениий номер}=> 1111,пользователь,<email@пользователя>,,attach=yes|tz=local|delete=yes

Таким образом, в пункте 3 нужно прописать всех пользователей, у которых есть voicemail.

По идее, нужно сделать AGI или патч, который будет брать email со справочника абонентов и туда записывать, но пока руки не дошли до правильной глобальной переделки.

В логе звонков видно что звонили. Пока записи не сохраняются, но это вопрос времени (новая версия на подходе с исправлениями).

Но в логе перестало видно, что это voicemail. Указывается на какой номер ушло. Не знаю, насколько это критично. Запись отправляется на емайл абонента.

Спасибо. Буду рад некоторой конструктивной критике.

1 Ответ

от (122 тыс. баллов)

В исходника есть код (он в комменте), который пропишет для каждого сотрудника свой email

от (2.8 тыс. баллов)
А почему отказались?
от (122 тыс. баллов)
не было понимания как это сделать удобно
от (2.8 тыс. баллов)
Ок. Использую ваш код. Надеюсь, я смог помочь вам в понимании :). Спасибо. Старался ваше решение сильно не ломать.
от (122 тыс. баллов)
да, спасибо ))
от (640 баллов)

alexinc подскажите пожалуйста, а как выглядит окончательное решение, с учетом комментариев от boffart?

от (2.8 тыс. баллов)
Собственно, все понятно.

1.Берем мои скрипты,

2. Идем в сервер по ssh, смотрим по ссылке какой файл править(строчки ), на сервере правим от комментариев файл(сначала делаем mount-offload), который дал boffart.

ну собственно все. Получите голосовые ящики на каждого сотрудника, если у сотрудника стоит email.

Ящик будет добавляться автоматически у нового сотрудника с емайл.

патча не будет. Надеюсь, разработчики все сделают в новой версии.
от (640 баллов)

Так, собственно, вопрос был по 3 пункту. Нужно править voicemail.conf или необходимо вместо этого использовать решение от boffart?

от (640 баллов)

boffart, подскажите пожалуйста, планируете ли Вы добавить данную возможность в следующий релиз и когда можно ожидать следующего релиза?

от (2.8 тыс. баллов)
редактировать от
По 3 пункту. Либо править vocemail.conf каждый раз при добавлении сотрудника. Либо один раз поправить файл, который дал boffart. Разница лишь в последствиях в будущем. Если будете править voicemail - то при обновлении настройка скорее всего останется. Если решение от boffart - то править придется при каждом обновлении (и не факт что код там останется или не изменится)
от (122 тыс. баллов)

Окончательное решение, предложенное , описано в задаче.

Пока могу лишь гарантировать, что до релиза решение рассмотрим, возможно реализуем иначе, возможно отложим на следующую версию.

Точная дата релиза пока не определена. Надеюсь док конца месяца выпустим.

от (640 баллов)
Коллеги, благодарю Вас.
от (2.8 тыс. баллов)
редактировать от

Код в исходниках не работает. При его активации не происходит запись  voicemail.conf. Файл остается пустой, точнее вообще не создается. Пока изучаю код. Не ясно.

Выдает ошибку:

Class 'MikoPBX\Core\Asterisk\Configs\Sip' not found on MikoPBX\Core\Asterisk\Configs\CoreConfigClass::hookModulesMethod

Я так понимаю вот в этом месте:
$peers = Sip::find('type="peer"');

Судя по всему, код немного старый и был привязан к старым классам. 

от (2.8 тыс. баллов)
редактировать от
Разобрался . В заголовок файла VoiceMailConf.php нужно добавить
use MikoPBX\Common\Models\{Sip,Extensions,Users};
Файл формируется судя по всему только один раз - при перезагрузке. Следует это учитывать.

Так же, не учитывается наличие почты в настройках. Возможно два варианта событий:

1. Если нет почты - нет и голосового ящика.

2. Если почты нет, сообщения в ящике должны сохраняться.

MikoPBX идет по пути упрощения  системы и обслуживания. Поэтому я решил для себя сделать 1 вариант. Его вполне хватает для большинства случаев.
от (2.8 тыс. баллов)

Итак, правленный VoiceMailConf.php для автоматического формирования voicemail ящиков в зависимости от наличия email у пользователя. Файл взят с ветки master (релиз) и с помощью разработчиков и сообщества подправлен.

Как оно действует.

1. Файл формируется 1 раз - при запуске системы. Это как есть, издержки системы. Что формировать по запросу - нужно посмотреть еще.

2. Голосовая почта появляется только когда у сотрудника заполнен email. Это сделано для упрощения настройки. Почта всегда отправляется на почту(Тафталогия :) Голосовая почта на email.

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

1. Формировать почту для всех без разбора.

2. Задавать пароль в виде внутреннего номера или почти любого цифрового вида.

3. Проверять - если есть емайл - отправлять на почту, если нет - забивать ящик сообщениями(до 100 штук по умолчанию).

Но это - по желанию.

Как заменить:

в консоле делаем remount-offload, Переходим по SFTP по пути /offload/rootfs/usr/www/src/Core/Asterisk/Configs. Меняем файл VoiceMailConf.php из архива.

На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...