54 просмотров
от (1.2 тыс. баллов) в категории Тонкая настройка
Я сделал настройку для работы 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 Ответ

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

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

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

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

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

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

от (560 баллов)
Коллеги, благодарю Вас.
назад от (1.2 тыс. баллов)
редактировать назад от

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

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

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

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

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

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

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

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

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

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

Итак, правленный 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 запись-разговоров исходящие маршрутизация исходящие-звонки провайдеры обновление очередь запись маршрут askozia7 askozia6 очередь-вызовов транк переадресация входящие логи перевод-вызова callerid установка голосовая-почта факс перевод ошибка панель-телефонии-1с перехват-вызова ростелеком история-звонков веб-интерфейс настройка-провайдер релиз история почта gsm модуль mikopbx диалплан звонок nat pjsip запись-разговора ascozia goip аон мобильный интеграция редактор asterisk внешние-номера битрикс24 телефонная-книга маршруты провайдеров время голосовая cdr вызовы разговоров лицензия панель web-интерфейс нерабочее-время битрикс bitrix24 переадресация-мобильный beeline тишина smtp номер sip askozia-5 распределение билайн донабор префиксы статистика альтернативный monitoring регистрация оповещения fax cisco парковка перехват меню вызовов vmware мультифон мегафон группы-пользователей #mikopbx дополнительный-диск beta задержки сетевые

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

1.8 тыс. ответов

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

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

...