Рубрика: Asterisk

ZRTP в Asterisk

Все изменения будем делать в файле sip.conf

Для начала в секции general нужно прописать опцию

directrtpsetup=yes

Далее в настройках пира нужно указать следующие параметры:

[101]
...
context=common
host=10.10.10.10
transport=tls
encryption=no ; обязательно нужно отключить STLS
port=5061
insecure=port,invite

Из основного нужно отключить SRTP командой encryption=no, и включить TLS транспорт, так же обратите внимание на порт, все остальное параметры выставляются на ваше усмотрение и отражены здесь для примера.

Сохраняемся, делаем в консоли Asterisk sip reload и пробуем звонить. Если оба конца поддерживают ZRTP, то тогда ваш голос будет шифрован.

Установка chan_dongle

Модуль chan_dongle необходим для работы с модемами Huawei:

  • K3715
  • E169 / K3520
  • E155X
  • E175X
  • K3765

Описываемая в данной статье версия является форком основного проекта, но основной проект не развивается с 2013 года и поддерживает только Asterisk 11. Впрочем, есть еще один форк той версии, что используется в данной статье. В связи с этим гарантировать работу модуля невозможно. Со списком известных багов можно ознакомиться по этой ссылке, но не ожидайте, что автор их исправит, так как этот список не обновлялся с 2011 года. Даже сам автор предупреждает, что модуль работает как попало и может назвонить вам куда нибудь и тем самым сожрать все ваши деньги или натворить еще что-то. Так что пожалуйста, прежде чем читать дальше, еще раз подумайте, стоит ли связываться с этим модулем. На сегодняшний день это единственный модуль, способный заставить дружить недорогие GSM-модемы с Asterisk и, скорее всего, у Вас нет выбора.

This channel driver is in alpha stage.
I am not responsible if this channel driver will eat your money on your SIM card or do any unpredicted things.

Модемы должны быть разлочены, проверка PIN-кода на SIM-карте должна быть отключена. Также необходимо обязательно отключить на модемах функции CR-ROM и CARDREADER, оставив модем только в режиме модема. Для этого необходимо подключиться к модему консолью и дать следующую АТ-команду:

Также желательно отключить на модеме ожидание вызова:

Установите необходимые для сборки chan_dongle пакеты

Далее загружаем форк chan_dongle под Asterisk 13, разархивируем, собираем, устанавливаем. Не обращаем внимание на строчку «automake: error: no ‘Makefile.am’ found for any configure output» — это не является ошибкой

Копируем конфигурационный файл dongle.conf

Перезапускаем Asterisk, смотрим, загрузился ли модуль

Далее необходимо сделать так, чтобы модемам при подключении назначался верный владелец (чтобы Asterisk имел к ним доступ). Для этого создадим файл /etc/udev/rules.d/92-dongle.rules со следующим содержимым

Затем перезапустим службу udev

Теперь при подключении устройства типа ttyUSB, система автоматически назначит ему владельца asterisk и группу dialout.

Идентификация по IMSI или IMEI

В Файле /etc/asterisk/dongle.conf описываются все устройства. Синтаксис файла — общепринятый в Asterisk. Например, я опишу модем, в котором установлена SIM-карта оператора Киевстар:

Идентификация устройства производится по imsi и imei. Можно идентифицировать устройство только по одному из параметров. imsi — это идентификатор SIM-карты, imei — это идентификатор терминала. Если Вам важно идентифицировать устройства по SIM-картам, тогда Вы можете указать только imsi номера этих SIM-карт (написаны на картах), если же важно идентифицировать по терминалам, тогда указывайте imei терминала (написан на модеме).

Все входящие вызовы с такого устройства будут обработаны контекстом from-dongle из файла extensions.conf или extensions.ael.

Исходящие вызовы через данный модем необходимо направлять на Dongle/GSM1

Также в описании устройства можно указать exten=+79123456789. В таком случае все входящие вызовы будут иметь указанный exten. В некоторых случаях это возможно понадобится.

Если идентификация по IMEI / IMSI не работает

В последней версии chan_dongle обнаружение устройств выполняется либо по идентификатору терминала (модема) — IMEI, либо по идентификатору абонента (SIM-карты) — IMSI. Если же по каким-то причинам Вам необходимо идентифицировать устройство по порту USB-контроллера, то используйте расширенную конфигурацию udev для присвоения псевдонимов портам, а затем эти псевдонимы можно использовать для определения модемов в dongle.conf.

Для привязки модемов по номеру порта контроллера USB, нужно определить адреса этих портов. Извлеките все модемы из сервера, затем запустите

Вставляйте по одному модему и записывайте адреса портов контроллера, которые относятся к каждому из них. Затем в файл /etc/udev/rules.d/92-dongle.rules допишите псевдонимы для каждого из модемов, указав адреса контроллеров в качестве ID, подобно следующему:

Как видно из примера, необходимы только два порта, вместо четырех.

Теперь в файле /etc/asterisk/dongle.conf вместо идентификации по IMEI и/или IMSI укажите идентификацию по портам USB следующим образом:

Однако этот метод определения модемов не является рекомендуемым, т.к. при случайной смене USB-порта либо вообще ничего не будет работать, либо Ваши вызовы пойдут не туда куда планировалось. Настоятельно рекомендуется использовать идентификацию по IMEI / IMSI.

На этом установка полностью завершена.

CommuniGate Pro + Asterisk (SIP)

Задача: Завести пользователей CommuniGate в IP-PBX на базе Asterisk как внутренних абонентов, дать возможность совершать исходящие и входящие звонки и пр.

Решение:
1. Для начала необходимо создать SIP-абонентов в Asterisk. Подробно рассказывать об этом не буду, тем более что схема действий может отличаться в зависимости от конфигураций.
2. В CommuniGate включаем (если еще не включена) поддержку PBX для нужных нам доменов.
3. В CommuniGate заходим в «Установки» -> «Маршрутизатор» и добавляем строчку вида:

	Signal:<(3-8d)@*> = gatewaycaller{*}#pbx

здесь 3-8 = минимальное и максимальное количество цифр в набираемом номере.
4. Если необходимо разрешить принимать звонки через Pronto!, заходим в нужном пользователе в «Настройки»->»Настройки Pronto!» -> «Входящие звонки» и устанавливаем значение «Включены»
5. Заходим в нужном пользователе в «Real-Time» -> «RSIP» и вводим настройки регистрации этого пользователя на сервере Asterisk:

	Имя = Asterisk
	Периодичность = 50s
	Имя входа = login
	Имя хоста = asterisk_ip
	Имя Аутентификации = login
	Пароль = password
	Куда оставляем пустым

здесь login и password = логин и пароль пользователя на сервере Asterisk, asterisk_ip = IP-адрес сервера Asterisk.
6. Заходим в нужном пользователе в «Real-Time» -> «ТФОП» и вводим настройки регистрации для исходящих вызовов:

	Местный код Города делаем пустым
	Код Скорой Помощи делаем пустым
	Домен шлюза -> {gw1=asterisk_ip}
	Адрес шлюза -> {gw1=asterisk_ip}
	Номер звонящего -> {gw1=login}
	Имя на шлюзе -> {gw1=login}
	Пароль для Шлюза -> password
	Тарифный план оставляем пустым

здесь login и password = логин и пароль пользователя на сервере Asterisk, asterisk_ip = IP-адрес сервера Asterisk.
7. Выполняем пункты 4-6 для всех пользователей.

Подключение Skype к Asterisk

  1. Первое что нам потребуется это добавить существующую учетную запись skype (благо она есть почти у каждого) для администрирования корпоративного аккаунта.
    Переходом по ссылке http://www.skype.com/go/skype.manager.setup
    Если у вас уже есть логин и пароль то вводим его, если нет то регистрируем нового пользователя выбрав У меня нет учетной записи в Skype.Если у вас нет учетной записи и вы регистрируете новую, будьте внимательны, и не регистрируйте логин который вы бы хотели использовать для корпоративного аккаунта, его мы будем указывать при создании бизнес счета.
  2.  Система предлагает заполнить данные о компании, заполняем.
  3. Видим сообщение о том что почти все готово
  4. Проверяем почту, которую указывали при регистрации, видим примерно следующее, переходим по ссылке.
  5. Попадаем в панель управления. Видим базовую информацию о счете.
  6. Переходим в Функции — Skype Connect. Далее нам нужно Настроить профиль SIP.
  7. Указываем имя профиля, что бы не путаться назовем его по домену нашей компании, например VoxLink.ru
    Вводим желаемый логин, система проверяет его на уникальность, если все хорошо, то видим зеленую галочку.
  8. Далее система попросит выбрать необходимое число каналов (минимально 1, максимально 300 — проще говоря это означает сколько пользователей смогут вам дозвониться одновременно, либо сколько исходящих вызовов вы сможете сделать единоразово)Один канал стоит 4,95 Евро, однако минимальная сумма для пополнения 10 Евро.
  9. После того как мы выбрали необходимую канальность, мы должны внести деньги на счет. Система на выбор предложит доступные методы оплаты. Выбираем нужный, например Яндекс.Деньги и жмем далее.
  10. Выбираем сумму которую мы внесем на счет skype, принимаем условия и продолжаем.
  11. В зависимости от выбранной платежной системы вас перекинет на нее для оплаты, оплачиваем.
  12. Далее возвращаемся в Функции — Skype Connect, и нажимаем Открыть профиль.
  13. Выбираем Данные проверки аутентичности. Способ подключения указываем Регистрация. Система выдаст вам SIP номер и сгенерирует пароль а так же отобразит необходимые настройки для подключения которые понадобятся нам ниже.Так же можно выбрать способ подключения Проверка аутентичности по IP-адресу. Это целесообразно делать если ваша IP-атс находится на внешнем статичном ip-адресе.

  14. Теперь переходим к настройке транка на ваше ip-атс. Создаем транк и прописываем следующие настройки
    Настройки peer
    username=пользователь sip
    type=peer
    secret=пароль который сгенерировала система
    qualify=yes
    insecure=invite,port
    host=sip.skype.com
    fromuser=пользователь sip
    fromdomain=sip.skype.com
    context=from-trunkСтрока регистрации
    пользовательsip:пароль@sip.skype.com


  15. Когда все сделали можем проверить статус, для этого возвращаемся в Данные проверки аутентичности и смотрим статус, видим следующее, Пользователь SIP успешно зарегистрирован на sip.skype.com
  16. После этого можно уже искать в скайпе пользователя по его sip id, но это не удобно и не красиво. Для того что бы найти пользователя по красивому имени типа yourcompany.ru нужно создать бизнес счет. Переходим в меню Члены панели — Добавить членов. Затем нажимаем кнопку Создать бизнес-счета
  17. Далее система попросит ввести адреса людей которых вы бы хотели пригласить в Skype Manager. Можно указать лишь свой адрес, затем жмем Дальше
  18. В следующем пункте система предложит нам логин сформированный на основе введенных данных.Теперь указываем свой логин, который будет участвовать в поиске Skype, например yourcompany.ru
  19. После того как создали счет, нужно настроить входящие звонки. Для этого идем в Функции — Skype Connect и выбираем Входящие звонки, далее нажимаем Добавить номер или бизнес-счет и добавляем бизнес-счет.
  20. После подтверждения видим что входящие звонки направлены на бизнес счет.
  21. На этом настройка и подключение скайпа к астериску закончено, можно запустить skype и найти пользователя yourcompany и совершить вызов. (иногда добавления пользователя в базу происходит не сразу и необходимо подождать)Ответы на вопросы:

    1. Для учетной записи нельзя установить аватар.
    2. Так же не работает статус кнопка. (online, offline)
    3. Клиенты не смогут присылать вам сообщения, только звонить.
    4. Учетная запись не предназначена для использования через skype-приложение.

 

Установка Asterisk12 + FreePBX 12 на CentOS 6

Выключение SELinux

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
reboot

Исходники

cd /usr/src

wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.15.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz

Зависимости

      yum install  -y e2fsprogs-devel  keyutils-libs-devel krb5-devel libogg \
      libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear \
      php php-gd php-mysql php-pdo kernel-devel ncurses-devel \
      audiofile-devel libogg-devel openssl-devel mysql-devel mysql-server zlib-devel \
      perl-DateManip sox
srtp srtp-devel gmime gmime-devel
     yum install -y gcc-c++ make gnutls-devel kernel-devel libxml2-devel ncurses-devel \
     subversion doxygen texinfo curl-devel net-snmp-devel neon-devel \
     uuid-devel libuuid-devel sqlite-devel sqlite git speex-devel gsm-devel \
     unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl libtool-ltdl-devel

SRTP

 wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
tar zxvf srtp-1.4.2.tgz 
cd srtp 
autoconf
./configure CFLAGS=-fPIC --prefix=/usr
make && make runtest  && make install
cd ..

Pjproject

 git clone git://github.com/asterisk/pjproject pjproject
cd pjproject/ 
./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr 
make dep && make && make install
ldconfig 
ldconfig -p | grep pj 
        libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
        libpjsip.so (libc6,x86-64) => /usr/lib/libpjsip.so
        libpjsip-ua.so (libc6,x86-64) => /usr/lib/libpjsip-ua.so
        libpjsip-simple.so (libc6,x86-64) => /usr/lib/libpjsip-simple.so
        libpjnath.so (libc6,x86-64) => /usr/lib/libpjnath.so
        libpjmedia.so (libc6,x86-64) => /usr/lib/libpjmedia.so
        libpjmedia-videodev.so (libc6,x86-64) => /usr/lib/libpjmedia-videodev.so
        libpjmedia-codec.so (libc6,x86-64) => /usr/lib/libpjmedia-codec.so
        libpjmedia-audiodev.so (libc6,x86-64) => /usr/lib/libpjmedia-audiodev.so
        libpjlib-util.so (libc6,x86-64) => /usr/lib/libpjlib-util.so
        libpj.so (libc6,x86-64) => /usr/lib/libpj.so

libjansson

 wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar zvxf jansson-2.5.tar.gz 
cd jansson-2.5 
./configure --prefix=/usr/ && make clean && make && make install && ldconfig

Lame

   tar zxvf lame-3.98.4.tar.gz
   cd lame-3.98.4
   ./configure
   make && make install
   cd ..

DAHDI

   tar zxvf dahdi-linux-complete-current.tar.gz
   cd dahdi-linux-complete-*
   make all && make install && make config
   cd ..

Libpri

tar zxvf libpri-1.4.15.tar.gz 
cd libpri-1.4.15 
make && make install
ldconfig
ldconfig -p | grep libpri
        libpri.so.1.4 (libc6,x86-64) => /usr/lib/libpri.so.1.4
        libpri.so.1.4 (libc6,x86-64) => /usr/lib64/libpri.so.1.4
        libpri.so (libc6,x86-64) => /usr/lib/libpri.so
 cd ..

SpanDSP

 wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
   tar zxvf spandsp-0.0.6.tar.gz
   
   cd spandsp-0.0.6  
   
   ./configure && make && make install

для 64 битной системы:

 
 ln -s /usr/local/lib/libspandsp.so.2 /usr/lib64/libspandsp.so.2
 
 cd ..

Asterisk 12

tar zvxf asterisk-12-current.tar.gz

cd asterisk-<version>/

useradd -d /home/asterisk  asterisk

 mkdir /var/run/asterisk

 mkdir /var/log/asterisk

chown -R asterisk:asterisk /var/run/asterisk

chown -R asterisk:asterisk /var/log/asterisk

chown -R asterisk:asterisk /var/lib/php/session/

nano +242 /etc/httpd/conf/httpd.conf

  User asterisk
  Group asterisk

nano +338 /etc/httpd/conf/httpd.conf

   AllowOverride  All

contrib/scripts/get_mp3_source.sh
 ./configure --libdir=/usr/lib64
  make menuselect
PjSIP Resource Modules

Resource Modules

                                    
          [*] res_pjsip
          [*] res_pjsip_acl
          [*] res_pjsip_authenticator_digest
          [*] res_pjsip_caller_id
          [*] res_pjsip_diversion
          [*] res_pjsip_dtmf_info
          [*] res_pjsip_endpoint_identifier_anonymous
          [*] res_pjsip_endpoint_identifier_ip
          [*] res_pjsip_endpoint_identifier_user
          [*] res_pjsip_exten_state
          [*] res_pjsip_header_funcs
          [*] res_pjsip_log_forwarder
          [*] res_pjsip_logger
          [*] res_pjsip_messaging
          [*] res_pjsip_mwi
          [*] res_pjsip_mwi_body_generator
          [*] res_pjsip_nat
          [*] res_pjsip_notify
          [*] res_pjsip_one_touch_record_info
          [*] res_pjsip_outbound_authenticator_digest
          [*] res_pjsip_outbound_registration
          [*] res_pjsip_path
          [*] res_pjsip_pidf_body_generator
          [*] res_pjsip_pidf_eyebeam_body_supplement
          [*] res_pjsip_pubsub
          [*] res_pjsip_refer
          [*] res_pjsip_registrar
 make
 make install
 make config

 

nano +112 /usr/sbin/safe_asterisk

     
 ASTARGS="-U asterisk"
 cp /usr/src/asterisk-<version>/configs/asterisk.conf.sample /etc/asterisk/asterisk.conf

или

cp  /usr/src/asterisk-13.*/configs/samples/asterisk.conf.sample  /etc/asterisk/asterisk.conf

nano +3 /etc/asterisk/asterisk.conf

 astmoddir => /usr/lib64/asterisk/modules

FreePBX12

 
 wget http://mirror.freepbx.org/freepbx-12.0.3.tgz
 
 tar zxvf freepbx-12.0.3.tgz
cd /usr/src/freepbx

/etc/init.d/mysqld start

mysqladmin create asterisk
mysqladmin create asteriskcdrdb
mysql asterisk < SQL/newinstall.sql
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql

mysql
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'SOMEPASSWORD';
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'SOMEPASSWORD';
flush privileges;
\q

mysqladmin -u root password 'SOMEPASSWORD'
cd /usr/src/freepbx
./start_asterisk start

#php53
nano +946 /etc/php.ini
     date.timezone = "Europe/Moscow"
pear uninstall db
pear install db-1.7.14
yum  install php-posix
 ./install_amp --username=asteriskuser --password=SOMEPASSWORD
error
 PHP Warning:  mkdir(): File exists in /usr/src/freepbx/libfreepbx.install.php on line 199

Запустите установку ещё раз

amportal a ma refreshsignatures
amportal a ma  upgradeall
amportal reload
amportal chown

или

/usr/local/sbin/amportal  ...
 echo "/usr/local/sbin/amportal start" >> /etc/rc.local

Установим коммерческий репозиторий FreePBX

  wget -P /etc/yum.repos.d/ -N http://yum.schmoozecom.net/schmooze-commercial/schmooze-commercial.repo

Установим требуемые пакеты

yum -y install php-5.3-zend-guard-loader sysadmin fail2ban incron ImageMagick
service httpd restart
service asterisk restart
chkconfig httpd on
chkconfig mysqld on
chkconfig asterisk on

Входите в веб-интерфейс FreePBX и устанавливайте недостающие модули.

Ещё один момент. Если надо писать разговоры и чтоб было видно всё через вебку, то надо ставить asterisk-addon отсюда http://downloads.asterisk.org/pub/telephony/asterisk/releases/

нужно поставить cdr_addon_mysql

перед make не забудем делать make menuselect

полученные модули у меня не скопировались в нужную папку, пришлось руками скопировать

DAHDI — You do not appear to have the sources for the kernel installed

Ошибка:

При компиляции DAHDI появляется сообщение о ошибке

You do not appear to have the sources for the 2.6.32-431.el6.i686 kernel installed.
make[1]: *** [modules] Error 1
make[1]: Leaving directory `/usr/src/dahdi-linux-complete-2.9.1-rc1+2.9.1-rc1/linux'
make: *** [all] Error 2

Причина:

Отсутствуют исходники загруженного ядра.

Например:

 # uname -r
 2.6.32-431.el6.i686
 # ls /usr/src/kernels/
 2.6.32-431.11.2.el6.i686

Решение:

 yum install kernel-devel-2.6.32-431.el6.i686

Где вместо 2.6.32-431.el6.i686 должна быть указана версия ядра из uname -r

или:

 yum install "kernel-devel-uname-r == $(uname -r)"

asterisk + goip + sms server

В данной статье рассмотрим установку и настройку SMS сервера для популярного VoIP шлюза GoIP. Наша задача — получить надежный инструмент для отправки, хранения и получения SMS сообщений с имеющихся SIM карт, а также автоматически проверять баланс денежных средств с уведомлением на e-mail.

Теоретически установка SMS сервера может быть осуществлена на любой дистрибутив Linux с предустановленными Apache и MySQL серверами, но логичнее будет выбрать сервер Asterisk, который мы используем в связке с GoIP шлюзом. Практически все необходимые компоненты там уже установлены, поэтому приступим.

Для начала скачаем сам дистрибутив, пошарив в просторах интернета или на сайте Hyberton. Там же можно скачать и обновление для VoIP шлюза. На момент написания статьи, последней доступной версией была v1.19.3. Копируем адрес ссылки с сайта и качаем его:

root @ localhost #cd tmp

Starting GoIP SMS System install

Configure httpd config:

Enter the httpd config file PATH: (default: /etc/httpd/conf.d)

Default press Enter

Import GoIP Databases

Enter the Mysql root password if the password exist:

********

Enter your Mysql PATH: (default: /usr/bin/mysql)

Default press Enter

Copying file to /usr/local/goip

goipcron start

Install finish

Please restart your httpd

GoIP manager URL: http://your_ip/goip

Как видим, в процессе установки нам необходимо указать пути к MySQL и httpd (для стандартных просто нажимаем Enter) и ввести root-пароль подключения к MySQL. В конце установки может возникнуть ошибка  «./goipcron: error while loading shared libraries: libz.so.1: cannot open shared object file or directory». В таком случае необходимо установить недостающие библиотеки:

После установки пакетов запускаем goipcron:

В результате выполнения команды мы должны увидеть надпись goipcron start (если нет, система напишет, какие еще пакеты требуют установки).

Перезапустим наш web сервер:

переходим по адресу http://your_ip/goip, где видим страницу авторизации (рис.1).

Asterisk SMS сервер

Рис.1

Стандартный логин: root,  пароль: root , прописываем и попадаем в настройки (рис.2).

Asterisk SMS server GoIP

Рис.2

Кликаем на вкладку Provider Manage и добавляем записи (рис.3).

Настройка Provide Manage SMS сервер

Рис.3

Для удобства идентификации оператора связи в дальнейшем, в строке Provider мы ввели номер телефона, но это может быть любой набор букв и цифр, например Oper1 или MTS. Если у вас на шлюзе три карточки одного оператора и пять другого, тогда достаточно создать 2 значения Provider. Это как дополнительный фильтр при отправке SMS, когда перейдем к отправке все станет понятно. В строке International Tel Code можно добавить префикс к набору номера, у нас это + , вы можете добавить +38 например, все зависит от того в каком формате вы будете хранить номера. Далее переходим на вкладку GoIP Manage и на верхней панели жмем Add GoIP (рис.4).

Настройка GoIP Manage

Рис.4

Создадим первый аккаунт для GoIP шлюза. Придумаем ID и пароль, выберем один из созданных ранее Provider (операторов), который будет соответствовать одной из SIM карт, установленных на шлюзе. Добавим необходимое количество аккаунтов. Каждый аккаунт будет соответствовать одной регистрации (одной линии). Как вы уже поняли, в разных аккаунтах значение Provider (оператор) может повторяться. Можно поставить галку и получать SMS сообщения на e-mail, но для этого нужно настроить smtp сервер, об этом чуть позже.

Перейдем к настройке GoIP шлюза, для начала проверим наличие настроек подключения к SMS серверу (рис.5).

GoIP настройка SMS

Рис.5

Если таких настроек у вас нет, необходимо обновить прошивку (рис.6)

Обновление прошивки GoIP

Рис.6

После обновления должен появиться раздел с настройками SMS, в котором необходимо прописать IP адрес сервера (в нашем случае Asterisk) и, созданные ранее, ID и пароль для каждой линии CH1,CH2,CH3 и т.д., порт можно оставить стандартный (рис.7)

Настройка SMS сервера GoIP

Рис.7

На этом настройка шлюза закончена, возвращаемся к серверу. На вкладке GoIP Manage мы должны увидеть надпись LOGIN в каждой созданной строке — это означает что шлюз зарегистрировался. Обновить информацию можно кнопкой Refresh (рис.8).

Регистрация GoIP на SMS сервере

Рис.8

Связь между сервером и шлюзом настроена, пробежимся по остальным настройкам. В разделе System Manage у нас имеется:

System Manage, общие настройки;

Mail Report, настройка отправки почты;

GoIP CDR,  статистика звонков;

Provider Manage, добавление идентификаторов линий;

GoIP Group, создание групп для аккаунтов;

GoIP Manage, добавление аккаунтов для связи с VoIP шлюзом.

Пришло время настроить Mail Report, чтобы сервер мог слать нам письма. (рис.9)

Отправка почты SMS сервер GoIP

Рис.9

Как видим, для отправки необходимо использовать SMTP сервер, можете настроить свой или указать существующий аккаунт на одном из почтовых серверов, например yandex. Также есть возможность мониторить регистрацию шлюза. Если в течение заданного промежутка времени система находится в состояния LOGOUT, приходит уведомление на почту.

В разделе Send Message первая вкладка Send Directly позволяет нам отправлять сообщения. (рис.10)

Отправка SMS GoIP сервер

Рис.10

Сообщение можно отправить мгновенно или в заданное время:

— определенному номеру;

— нескольким номерам;

— всем существующим контактам (раздел Receiver Manage);

— группам (настройка в разделе Crowd and Group Manage);

— загрузить файл со списком номеров, выгруженный из вашей CRM или составленный вручную (можно скачать шаблон для файла — Example, рис.11).

Загрузка номеров в SMS сервер

Рис.11

Запланированные задания по отправке можно редактировать или отменить на вкладке Examine Tasks. Вкладка Inbox хранит все входящие сообщения. Остальные вкладки интуитивно понятны, поэтому подробно мы их описывать не будем. Ну и напоследок, настроим автоматическую проверку баланса денежных средств на SIM картах с уведомлением на электронную почту. Переходим в раздел Auto balance and recharge и добавляем план проверки (рис.12)

Автоматическая проверка баланса SIM карт VoIP шлюза

Рис.12

Очень важно в настройках правильно указать системе, как вычленить сумму баланса из ответа USSD. Для начала просто проверьте какой ответ вам приходит от оператора на запрос о балансе. Допустим это фраза: «На вашем счету 100.00 usd , ваш тарифный план Максимальный». Ваша задача скопировать все, что находится перед суммой 100 (включая пробел) и вставить в поле Exact Ballance Prefix (USSD), остальную часть после 100 вставить в поле String for Owe (USSD). Таким образом сервер каждый раз при проверке будет извлекать сумму баланса, сравнивать её с полем Low Balance Trigger и при превышении порога отсылать уведомление на указанный e-mail. Историю отправки запросов можно посмотреть в разделе Send Message вкладка USSD Records.

— See more at: http://ctech.com.ua/asterisk-sms-server/#sthash.aLeFb4sn.dpuf

FreePBX, русский язык голосовых сообщений.

В этой статье мы поговорим о том как изменить язык веб интерфейса FreePBX Distro на русский, а так же о том как заставить говорить по русски наш Asterisk.

Итак начнём с простого, с веб интерфейса,  сначала нужно включить возможность изменения языка, делается это через меню Общие настройки (Settings) в разделе Дополнительные настройки (Advanced Settings).

Отвечает за это параметр Show Language setting в блоке Поведение вэб-интерфейса (GUI Behavior)

freepbx distro web

После того как мы задаём для этого параметра True надо сохранить изменение нажав на зелёный галочку, а затем нажать красную кнопку Применить изменения (Apply Config). После принятия изменения в веб интерфейсе в правом верхнем углу появляется меню с выбором языка. Так что на этом пункте мы закончим.

Переходим к русскому языку. Как Вы наверное уже знаете астериск разговаривает с нами используя набор заранее записанных фраз, по умолчанию при установке системы с дистрибутива присутствует только английский язык. Для загрузки русского языка нам понадобится ssh (терминал, коммандная строка итп), а так же у нашего астериска должен быть выход в интернет.

Итак, после того как мы залогинились в терминал, набираем последовательно сначала

mkdir -p /var/lib/asterisk/sounds/ru/

затем

wget -q --no-check-certificate https://github.com/pbxware/asterisk-sounds/tarball/master -O- \ | tar xzv --strip-components 1 -C /var/lib/asterisk/sounds/ru/

загрузятся основные фразы, и затем

wget -q --no-check-certificate https://github.com/pbxware/asterisk-sounds-additional/tarball/master -O- \ | tar xzv --strip-components 1 -C /var/lib/asterisk/sounds/ru/

в этот момент загрузится расширенный пакет фраз, всего их более 700, что покрывает практически все действия с астериском.

Хотелось бы обратить внимание, что русская озвучка предоставлена порталом IVR VOICE где Вы по очень демократичным расценкам можете заказать любые другие фразы для астериска, ну и конечно записать приветствие с названием своей компании. Ещё раз повторю, цены приятно удивляют, рекомендую.

Так, файлы мы загрузили, но астериск по прежнему не хочет говорит по русски, что ж не так? )

Осталась самая малость, задать основной язык. Делается это через меню Общие настройки(Settings) в разделеУстановки Asterisk для SIP(Asterisk SIP Settings).

В строке Язык (Language) что находится в блоке Дополнительные основные настройки (Advanced General Settings)надо прописать ru.

freepbx distro sip language

 

После внесения изменения жмём кнопку Submit Changes и красную кнопку Применить изменения (Apply Config). Всё, проверяем, наш астериск должен говорить по русски. Самый просто способ набрать *65.

Передаем номер звонящего при переадресации на мобильный с помощью СМС.

Что имеем:
Сервер с FreePBX Distro FreePBX 2.11.0.0beta2.5 (Астериск 1.8), модем Huawei E171, несколько подключенных городских линий, диалплан с переадресацией.

Для начала установим модем, переведем его в нужный режим, настроим программу для отправки СМС — Gnokii. Здесь и далее описываю действия для CentOS.

1. Обязательно ставим зависимости:

yum install usbutils libusb-devel tcl

2. Вставляем модем и смотрим, как он определился:

lsusb
Bus 002 Device 007: ID 12d1:14fe Huawei Technologies Co., Ltd.

Так в начале выглядит строка.

3. В моем дистрибутиве не было пакета для сборки программ из исходников. Ставим Development Tools.

yum groupinstall "Development Tools"

4. Качаем программу для переключения режимов модема. Пакеты usb-modeswitch usb-modeswitch-data берем отсюда.

5. Распаковываем оба архива и устанавливаем по-очереди:

tar xvjf ...
make install

6. Передергиваем модем и проверяем:

lsusb
Bus 002 Device 008: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

Значит все ОК и модем будет определяться каждый раз как надо. Если строка та же, что и вначале, то идем сюда.

Команда dmesg покажет нам:

option 2-1.4:1.0: GSM modem (1-port) converter detected
usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB0
option 2-1.4:1.1: GSM modem (1-port) converter detected
usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB1
option 2-1.4:1.2: GSM modem (1-port) converter detected
usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB2

7. Устанавливаем репозитарий для EPEL CentOS вот так.

8. Устанавливаем gnokii

yum --enablerepo=epel install gnokii gnokii-smsd

9. Правим конфиг /etc/gnokiirc

[global]
port = /dev/ttyUSB0
model = AT
initlength = default
connection = serial
use_locking = no
serial_baudrate = 115200

10. Проверяем отправку СМС:

echo 'Bingo!' | gnokii --sendsms +79060000000

Теперь нужно разрешить пользователю asterisk запускать gnokii из диалплана. Так как установлена gnokii была под учеткой root, то пользователь asterisk не сможет ее запустить. Правим файл /etc/sudoers с помощью команды visudo (настоятельно рекомендуется использовать только visudo для правки файла sudoers):

добавим строку для пользователя asterisk:

asterisk ALL=NOPASSWD:/usr/bin/gnokii 

Сохраняем файл и выходим.

Далее нам нужно внедрить в наш диалплан команду System() для отправки CID в СМС. FreePBX, конечно, не даст нам править extensions.conf и extensions_additional.conf, так как он сам их все время перезаписывает. Но можно вставлять свои правки в план с помощью файла extensions_override_freepbx.conf, что мы и сделаем. Можно просто найти в файле extensions_additional.conf нужный контекст, скопировать его фрагмент в extensions_override_freepbx.conf и внести свои изменения. У меня есть внутренний номер 203 который переадресуется на номер мобильника по SIP/trunk/номер_телефона. Эту часть диалплана мы и будем править:

[ext-local]
exten => 203,1,Set(__RINGTIMER=${IF($[${DB(AMPUSER/203/ringtimer)} > 0]?${DB(AMPUSER/203/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 203,n,System(echo '8${CALLERID(num)}' | sudo gnokii --sendsms +79061234567) ; отправка номера
exten => 203,n,Macro(exten-vm,novm,203,0,0,0)
exten => 203,n(dest),Set(__PICKUPMARK=)
exten => 203,n,Goto(${IVR_CONTEXT},return,1)
exten => 203,hint,SIP/10000/778899
exten => Narva778899,1,Goto(from-internal,203,1)

Теперь при звонке или переадресации на 203 будет отправляться СМС с номером звонившего, взятая из переменной CALLERID(num) прямо на мобильный телефон.

Настройка GoIP-8 и Asterisk

GoIP – относительно неплохой SIP-GSM шлюз. Из-за своей цены, часто встречается в паре с Астериском. Рассмотрим подключение GoIP8 к Астериску на примере FreePBX. Для подключения GoIP8 на Астериске нужно будет создать 8 Sip-транков. Далее будет несколько картинок под небольшим катом.

Read More «Настройка GoIP-8 и Asterisk»

нет звука, нет звука в одну сторону, нет слышимости

Трансляция сетевых адресов (NAT) является обычной практикой в сети и нередко мешает прохождению голосовых пакетов (нет звука) и инициализации соединений (нет соединения). Решение этой проблемы требует понимания принципов работы NAT и VoIP. В этой статье рассматривается протокол SIP и Asterisk, но проблемы и решения применимы и к большинству других приложений и протоколов.

Read More «нет звука, нет звука в одну сторону, нет слышимости»