Подключение модема Huawei E1550 к FreePBX (elastix ).

  • VOIP
Протестированно на модеме Huawei E1550 с разлоченным звонками и версией прошивки 11.608.14.15.311 СКАЧАТЬ ТУТ
А теперь перейдем к установке и настройке модема. Для нормальной работы модема отключим на нем CardReader и виртуальный CD-ROM. Сделать это можно так:

root@computer:$ sudo -i
root@computer:$ apt-get install minicom
root@computer:$ minicom -s
Выбираем настройку последовательного порта:
Нажимаем А и редактируем порт — /dev/ttyUSB0 после этого жмем два раза Enter и нажимаем Выход.
После подключения к модему введем команду — AT^U2DIAG=0 (Это команда перевода модема в режим только модем)
Выходим нажав Ctrl-A а потом Q

CardReader и виртуальный CD-ROM отключены можно продолжать.
Дальше — если нет svn то доставим

# yum install mod_dav_svn mod_ssl


Ну а дальше непосредственно к установке chan_datacard. По чему то не захотел ставиться на elastix 2.4

# svn co http://www.makhutov.org/svn/chan_datacard/trunk/ chan_datacard
# cd ~/chan_datacard/
# ./configure
# make install
# cp ~/chan_datacard/etc/datacard.conf /etc/asterisk


Второй вариант это chan_dongle

Устанавливаем последнюю стабильную версию Dongle-1.1.r14:

Качаем, распаковываем и переходим в папку с исходниками модуля chan_dongle выполнив команды:

wget http://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz
tar xvfz chan_dongle-1.1.r14.tgz
cd chan_dongle-1.1.r14

Если на официальном сайте отсутствует архив с дистрибутивом модуля Dongle, скачиваем его с этого сайта:

wget http://softnastroy.com/downloads/asterisk/chan_dongle-1.1.r14.tgz
tar xvfz chan_dongle-1.1.r14.tgz
cd chan_dongle-1.1.r14

Запускаем конфигурирование, сборку и установку модуля chan_dongle командами:

./configure
make
cp chan_dongle.so /usr/lib/asterisk/modules/
cp etc/dongle.conf /etc/asterisk/


Устанавливаем самую последнюю разрабатываемую версию Dongle из svn:

aptitude install autoconf
cd /usr/src/asterisk-src/
svn checkout http://asterisk-chan-dongle.googlecode.com/svn/trunk/
cd trunk/
aclocal
autoconf
automake -a
./configure
make
cp chan_dongle.so /usr/lib/asterisk/modules/
cp etc/dongle.conf /etc/asterisk/
chown -R asterisk:asterisk /usr/lib/asterisk/modules/chan_dongle.so
/etc/init.d/asterisk restart


Задание прав и пользователя устройства (Huawei E1550)

Предположим, по умолчанию так:

# ls -al /dev | grep ttyS


crw-rw----   1 root     dialout    4,  64 Сен 23 15:14 ttyUSB0
crw-rw----   1 root     dialout    4,  65 Сен 23 15:14 ttyUSB1
crw-rw----   1 root     dialout    4,  66 Сен 23 15:14 ttyUSB2

А Asterisk запущен из под одноименного пользователя

в консоли увидим:

chan_dongle.c: unable to open /dev/ttyUSB1: Permission denied
создадим правило udev

nano /etc/udev/rules.d/e1550.rules

Вставим в созданный файл.
KERNEL=="ttyUSB[012]", OWNER="asterisk", GROUP="asterisk", MODE="0660"


# /sbin/start_udev  
 # ls =al /dev | grep ttyUSB


crw-rw--   1 asterisk asterisk   4,  64 Сен 23 15:25 ttyUSB0
crw-rw--   1 asterisk asterisk   4,  65 Сен 23 15:25 ttyUSB1
crw-rw--   1 asterisk asterisk   4,  66 Сен 23 15:25 ttyUSB2


Отредактируем файл конфигурации модуля модема:

root@computer:$ nano /etc/asterisk/datacard.conf
Удаляем всё после последней черты в конфиг файле и вставляем:

[ВАШ НОМЕР СИМ КАРТЫ]
context=from-gsm         ; context для входящих звонков
audio=/dev/ttyUSB1        ; tty порт для аудио подключения
data=/dev/ttyUSB2         ; tty порт для управляющих AT комманд модема
group=1              ; Группа вызова
rxgain=10             ; Изменение громкости динамика
txgain=-5             ; Изменение громкости микрофона
resetdatacard=yes         ; Перезагрузка модема при перезапуске модуля
autodeletesms=yes         ; Удаление смс с симкарты при перезапуске
usecallingpres=yes        ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation

Создадим конфигурационный файл для входящих подключений:

Для входящих вызовов, sms и ussd запросов настроим extensions.conf:



[datacard-incoming]
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()

exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()

exten => s,1,Dial(SIP/100,,)
exten => s,n,Hangup()

Подробности

Как вернуть родной web интерфейс на elastix?

  • VOIP
После обновления freepbx на elastix 2.5, первый заменил собой web интерфейс elastix.

после обновления /var/www/html/index.php содержал

<?phpif(file_exists(dirname(__FILE__). '/index_custom.php')) { include_once(dirname(__FILE__). '/index_custom.php'); } else{ header('Location: /admin'); }



заменить файл /var/www/html/index.php

Ниже как должно быть!
Читать дальше

Как вернуть родной web интерфейс на elastix?

  • VOIP
После обновления freepbx на elastix 2.5, первый заменил собой web интерфейс elastix.

после обновления /var/www/html/index.php содержал
<?phpif(file_exists(dirname(__FILE__). '/index_custom.php')) { include_once(dirname(__FILE__). '/index_custom.php'); } else{ header('Location: /admin'); }



заменить файл /var/www/html/index.php

Ниже как должно быть!

Читать дальше

Отправка почты с PBX Elastix через SMTP сервер

  • VOIP
Чтобы все было совсем «кошерно», мы настроим отправку почты сервером Asterisk через внешний почтовый сервер, нужно это для того чтобы получать уведомления о новых сообщениях поступивших на голосовую почту и других уведомлений сервера. 

У Elastix есть функционал для поднятия почтового сервера, но вероятность его использования крайне мала, зачастую есть внешние почтовые системы (yandex.ru,mail.ru,gmail.com) или внутренние типа Exchange, MDaemon и т.п., в общем затея с использованием сервера PBX в качестве почтового сервера, лично мне, кажется весьма сомнительной, по этой причине, мы настроим отправку почты, через внешний почтовый сервер, которые позволяет отправить через SMTP с авторизацией, кто будет принимать соединения уже не так важно…

Скажу честно, с postfix я провозился очень долго у него есть проблема которую я победить так и не смог, проблема в том что система начинает слать письма где в отправителе значится адрес вида asterisk@hostname.domain.tld на что почта yandex.ru реагирует вполне предсказуемо, а именно, нам выписывают «болтяру» и письмо не уходит т.к. система нас приняла за спамеров пытающихся подменить адрес отправителя. 
Ошибка возникает следующая:

May 30 10:50:41 test-srv postfix/qmgr[5070]: A3525370A73: from=<asterisk@test-srv.example.org>, size=819, nrcpt=1 (queue active)
May 30 10:50:41 test-srv postfix/smtp[5082]: A3525370A73: to=<username@DOMAIN.TLD>, relay=smtp.yandex.ru[213.180.193.38]:25, delay=0.15, delays=0.07/0/0.07/0, dsn=5.5.4, status=bounced (host smtp.yandex.ru[77.88.21.38] said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command)

Читать дальше

Соединение двух FreePBX

  • VOIP
Существуют две точки входа в Диалплан FreePBX.
Это контексты [from-trunk] и [from-internal]. Когда вызов направляется в контекст [from-trunk], он обрабатывается как DID и рассматривается как внешний вызов. Если же вызов направляется в контекст [from-internal] он рассматривается как внутренний вызов от SIP, IAX или DAHDI екстеншена Вашей АТС. Далее будет рассмотрен пример объединения двух FreePBX с созданием общего Диалплана, так, чтобы для конечного пользователя две машины работали как одна.

FreePBX «офис1» выходит через ’9′ на внешние линии и имеет внутреннюю нумерацию от 110 до 149.

FreePBX «офис2» выходит через ’0′ на внешние линии и имеет внутреннюю нумерацию в диапазоне от 200 до 249.

Первым делом создадим IAX транк между двумя сторонами.

Для FreePBX «офис1»

Trunks

Trunk Name

office2
PEER Details

deny=all              запрещает использование всех аудио кодеков.
allow=g729&alaw       разрешает использование кодеков g729 и g711 alaw.
type=friend           может совершать и принимать звонки
host=IP'office2'      может совершать и принимать звонки с хоста 'office2'.
qualify=yes           регулярно поддерживать связь с удаленной машиной.
context=from-internal обрабатывать входящие звонки из 'office2'в контексте [from-internal]
Для FreePBX «офис2» создается такой же транк. Только изменяем host на IP’office1′. Trunk Name


office1
PEER Details

deny=all
allow=g729&alaw
type=friend
host=IP 'office1'
qualify=yes
context=from-internal


Вот и все с транками. Теперь создадим исходящую маршрутизацию.

Для FreePBX «офис1»

Outbound Routes

Route Name

tooffice2
Dial Patterns

2[0-4]X
Trunk Sequence

IAX/office2
Для FreePBX «офис»

Route Name

tooffice1
Dial Patterns

1[1-4]X
Trunk Sequence

IAX/office1
Читать дальше