Вышло обновление ПО IP АТС NEOPbx до версии 1.0.49

  • Улучшен дизайн панели управления АТС и Личного кабинета пользователя.
  • Оптимизирован модуль «Статистика 2.0».
  • В личный кабинет пользователя добавлен модуль «Статистика 2.0».
  • Произведена замена сервера телефонии.
  • Добавлена функция транзитной записи разговоров на транках.
  • Оптимизирована работа DNS (для изолированных локальных сетей).
  • Исправлены некоторые мелкие ошибки.

Screenshot-NEOPbx - Google Chrome

В текущем обновлении обращаем ваше внимание на функцию транзитной записи разговоров, которая стала доступна на всех видах транках: SIP, IAX2, GSM, E1 с её помощью можно реализовать транзитную запись всех телефонных вызовов, проходящих через IP АТС NEOPbx. Это расширяет сценарии использования нашей АТС, в частности в России очень много современных АТС, но они не обладают функцией записи разговоров, а обладающие ими компании хотели бы получить такой функционал. Теперь у нас есть решение, которое справится с этой задачей, и даже немного больше, через модуль «Статистика 2.0» можно получить удобный доступ ко всем транзитным вызовам, в считанные секунды найти нужный разговор и прослушать его! Также хотим заметить, использование данной возможности не огрничивается только аппаратной версией АТС, если есть возможность на вашей АТС организовать SIP-транк в режиме точка-точка, то в этом случае вы можете использовать для транзитной записи разговоров и виртуальную версию IP АТС NEOPbx.

После установки этого обновления необходимо перезагрузить АТС.

Elastix 3.0. Первый запуск

Итак, с горем пополам мне удалось сделать первый запуск Elastix 3.0 Stable. Сразу скажу, что система меня не очень порадовала. Ожидал гораздо большего от компании PaloSanto. Есть, конечно приятные моменты в виде добротно сделанного навигационного меню. Но в купе со старым дизайном модулей система смотрится нелепо. Вот, например:

elastix1

Хотелось бы отметить, что процесс инсталляции по-умолчанию стал графическим. Но выбор текстового режима установки все таки оставили. Сам процесс установки ничем не отличается от предыдущих версий Elastix. Я ставил на виртуалку VirtualBox. Как оказалось баг, который отмечали пользователи еще в alpha-версии с клавиатурой остался. В постустановочном скрипте у меня не вводились символы. Как следствие я не мог задать нормально задать пароль ни на mysql, ни на пользователя superadmin.

Обойти это недоразумение можно следующим образом: когда выскочит предложение задать пароль на mysql — намите клавишу Ins, тем самым вы пропустите эту настройку. Далее авторизуйтесь под пользователем root и узнайте IP-адрес. Подключитесь к Elastix по SSH и запустите постинсталляционный скрипт вручную:

/etc/init.d/elastix-firstboot start

Теперь можно авторизоваться. Заходите по IP-адресу вашей АТС и авторизовывайтесь под пользователем superadmin. Вот тут есть какая то непонятка со входом. Когда я вошел под superadmin, а потом сделал logout — то попал на другую страницу входа в систему по адресу http://192.168.1.30/admin/, которая по дизайну явно отличается от https://192.168.1.30/. Но это не самое страшное. Самое интересное это то , что я почему-то теперь должен заходить под пользователем admin.

elastix3

Авторизовываемся и видим наш Dashboard, который остался от предыдущих версии в наследство. Далее, судя новой логике работы Elastix, а именно, что одна АТС может обслуживать сразу несколько организаций, нам нужно создать новую организацию. Но и тут меня ждал сюрприз:

Screenshot-Elastix - Google Chrome-1

По какой-то причине нельзя использовать дефисы в имени домена. Изменим на voiplab.ru. Но и тут опять сюрприз при попытке сохранить организацию:

Screenshot-Elastix - Google Chrome-2

Оказалось, что по какой то причине не прочитались настройки Asterisk. Поэтому делаем рестарт/релоад Asterisk и повторям попытку создать организацию:

/sbin/service asterisk restart

После этого я зашел в раздел Users и назначил пользователю [email protected] пароль. Теперь можно авторизовываться под этим админом.

В итоге можно сказать, что Elastix 3.0 требует серьезной доработки. Поэтому ставить в продакшн окружение я вам не рекомендую.

AMI Launcher for Asterisk / Elastix / FreePBX

amilaunchernewДавно хотел написать универсальное приложение для Asterisk, которое могло бы запускать внешнее приложение после поднятия трубки оператором.

«Для чего это нужно?» —  спросите вы, и это будет хороший вопрос. Это бывает необходимо в тех случаях, когда нет возможности/желания/средств на интеграцию вашей системы IP-телефонии на основе Asterisk в вашу CRM, backoffice или «систему помощи клиентов». Предположим, у нас есть некий backoffice с возможностью поиска клиентов по номеру телефону. И мы хотим автоматизировать процесс поиска так, чтобы при поступлении входящего вызова, оператор call-центра уже видел карточку клиента(его заказы или другую информацию). С помощью AMI-Launcher это реализуется проще-простого.

Возможности AMILauncher:

  • Возможность выполнения внешней программы, после поднятия трубки оператором.
  • Возможность выполнения внешней программы, перед поднятием трубки оператором.
  • В качестве аргумента к внешним программам имеется возможность отправить входящий CallerID через параметр {num};
  • Программа работает с сервером Asterisk через AMI;
  • В качестве внешнего приложения можно указать как прямой путь до программы Windows, так и http/https-адрес.

Пример использования:

[tube]https://www.youtube.com/watch?v=lBFSf0Hunao[/tube]

Исходники:

https://github.com/voiplab/AMI-Launcher-Asterisk
(далее…)

Простые звонки и NEOPbx

prostie_zvonki_logoВ ближайшее время заканчиваю работу над интеграцией модуля Простые звонки для IP АТС NEOPbx.

«Простые звонки» - это компьютерная программа, которая связывает офисную АТС (или обычный телефон на Android) и базу клиентов. Вы получаете колл-центр без покупки дорогостоящего ПО и оборудования. «Простые звонки» будут работать с той телефонией и базой клиентов, которые у вас уже есть!

На самом деле очень удобная штука, основная задача которой распределение звонков на основании того, с какими клиентами работает менеджер или оператор call-центра.

О том, как это работает для конечного пользователя и о возможностях модуля очень хорошо написано на официальном сайте. Я же вкратце опишу как это работает со стороны Asterisk.  (далее…)

AMILauncher for AsteriskAMILauncher for Asterisk

Customer ETickets Ltd.
State Ready
Description AMILaucher is a program that execute any external Windows application after call answer. AMILauncher uses AMI for connecting to Asterisk.
Demonstration Demo Video
Link Download

amilauncherЗаказчик ООО ETickets
Статус Готов
Назначение Написать программу-посредник под Windows, которая должна запускать внешнее приложение при поднятии трубки оператором. В качестве аргумента к внешней программе должен передаваться номер с которого пришел звонок (CallerID). Сервер IP-телефонии на основе Asterisk. Связь с сервером Asterisk происходит через AMI.
Демонстрация Видео
Ссылка Скачать проект

amilauncher

Добавочный номер в IVR через транк Elastix / FreePBX

Предположим, что у нас есть 2 АТС Elastix / FreePBX объединенные через SIP/IAX2 транк с номерными планами 3XX и 4XX соответственно. Назовем их АТС1 и АТС2. Необходимо чтобы, попадая в голосовое меню IVR АТС1, можно было сделать донабор 4XX и попасть на номера АТС2.

Стандартными возможностями, на сколько мне известно, это сделать не возможно. Но можно легко обойти это ограничение. Итак, открываем файл конфигурации /etc/asterisk/extestions_custom.conf на АТС1 и/или добавляем в него контекст:

[from-did-direct-ivr-custom]
exten  => _4XX,1,Goto(outbound-allroutes,${EXTEN},1)

Сохраняемся и даем команду на рестарт:

[email protected]/etc# asterisk -rx "reload"

Плата OpenVOX D210P

OpenVOX D210PВчера в офис приехала плата для тестирования на нашем оборудовании OpenVOX D210P. Интересной особенностью этой платы является наличие 2-х портов E1/T1. Что позволит нам иметь до 60 потоков на 1 плате.

Но, как оказалось не все так просто. После установки оказалось, что она не определяется корректно, даже с последними драйверами dahdi.

В системе она определяется как неизвестное устройство:

02:00.0 Class ff00: Unknown device d141:1220 (rev 01)
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- SERR- <perr+ latency:="" 32,="" cache="" line="" size:="" 64="" bytes="" region="" 0:="" memory="" at="" c0000000="" (32-bit,="" non-prefetchable)="" [size="32K]</pre">

Есть подозрения, что есть проблема с прерываниями. Так что, пока ищем решение проблемы…

Замена подстроки в строке в Asterisk

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

[macro-replace]
;
; ${ARG1} - String source
; ${ARG2} - Chars to replace
; ${ARG3} - Chars to replace with
;
exten => s,1,NoOp(Replacing ${ARG2} for ${ARG3} in ${ARG1})
exten => s,n,Set(str=${ARG1})
exten => s,n,Set(find=${ARG2})
exten => s,n,Set(replace=${ARG3})
exten => s,n,Set(i=0)
exten => s,n,Set(length=${LEN(${str})})
exten => s,n,While($[${i} < ${length}])
exten => s,n,GotoIf($["${str:${i}:1}" != "${find}"]?continue)
exten => s,n,Set(pre=)
exten => s,n,GotoIf($["${i}" = "0"]?post)
exten => s,n,Set(pre=${str:0:${i}})
exten => s,n(post),Set(post=)
exten => s,n,GotoIf($["${i}" = $[${length} - 1]]?write)
exten => s,n,Set(post=${str:$[${i} + 1]})
exten => s,n(write),Set(str=${pre}${replace}${post})
exten => s,n(continue),Set(i=$[${i} + 1])
exten => s,n,EndWhile
exten => s,n,Set(REPLACERESULT=${str})

Запускаем консоль CLI Asterisk от другого пользователя

В одной из задач мне понадобилось решить именно такую проблему. Итак, вопрос стоит так: каким образом дать доступ пользователю системы, который не имеет отношения к Asterisk. Мой Asterisk настроен таким образом, что запускается от пользователя asterisk, принадлежащего одноименной группе. (простите за тавтологию)

На самом деле большой проблемы в этом нету. Поэтому сразу к делу. Добавляем нового(или уже существующего) пользователя в группу asterisk:

# Если пользователь новый
useradd -G asterisk tony
# Если пользователь существует
usermod -a -G asterisk tony

После этого уже можно подключиться к CLI. Если не получилось, то выполняем еще один шаг: добавим в файл /etc/asterisk/asterisk.conf следующее содержимое и перезапустим asterisk.

[files]
astctlgroup => asterisk
astctlpermissions = 0775

Собственно все, теперь пользователь tony сможет подключаться к CLI Asterisk.