Freeswitch

Материал из ALT Linux Wiki

Сервер IP-телефонии Freeswitch в ALT Linux

Freeswitch - это очень гибкий и навороченный сервер IP телефонии, основанный на SIP сигнализации. Данная статья описывает предварительную настройку сервера Freeswitch, для получения более подробной документации рекомендуется обратиться к первоисточнику - официальной документации проекта Freeswitch.

Всё описанное ниже протестировано на Sisyphus конца марта 2016 года


Установка

apt-get install freeswitch-daemon freeswitch-sounds-ru-ru-elena-32000 freeswitch-sounds-music-32000 freeswitch-lang-ru


Настройка демонстрационного профиля vanilla

Основной конфигурационный каталог freeswitch расположен в /etc/freeswitch По умолчанию, сразу после установки, вам доступна демонастрационная конфигурация vanilla, с массой включенных функций, которые могут не понадобится в реальной жизни.

Для замены конфигурации по умолчанию - удалите содержимое /etc/freeswitch и скопируйте нужную вам из /usr/share/doc/freeswitch-daemon-1.6.6/conf/

Смена пароля по умолчанию

Переменные с настройками по умолчанию в профиле vanilla находятся в файле /etc/freeswitch/vars.xml: Первым делом поменяйте значение переменной

<X-PRE-PROCESS cmd="set" data="default_password=1234"/> 

Это очень важно - в интернете существует сеть ботов, которые разыскивают серверы IP телефонии со слабыми паролями по умолчанию и используют аккаунты из них для осуществления звонков.

Вы можете сгенерировать сильный пароль командой

pwgen 12

Настройка внешнего аккаунта SIP (на примере sipnet)

Для звонков в традиционную сеть телефонии необходимо будет приобрести какой-то аккаунт SIP телефонии, позволяющий на возмездной основе возможность осуществления звонков. Для примера можно воспользоваться сетью Sipnet, у которой довольно неплохие условия выхода в мир для частных лиц.

После регистрации в сети sipnet у вас появится номер SIP аккаунта и пароль. Их необходимо будет вписать в файле vars.xml в переменные, начинающиеся с default_provider:

  <X-PRE-PROCESS cmd="set" data="default_provider=example.com"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_username=joeuser"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_password=password"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_from_domain=example.com"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_register=false"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_contact=5000"/>

Для sipnet данные переменные необходимо заполнить следующим образом:

  <X-PRE-PROCESS cmd="set" data="default_provider=sipnet.ru"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_username=0123456789"/> <!-- SIP ID в сети sipnet -->
  <X-PRE-PROCESS cmd="set" data="default_provider_password=пароль_sipnet"/> <!-- ваш пароль для доступа в sipnet -->
  <X-PRE-PROCESS cmd="set" data="default_provider_from_domain=sipnet.ru"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_register=true"/>
  <X-PRE-PROCESS cmd="set" data="default_provider_contact=1000"/> <!-- контакт по умолчанию, на который будет поступать звонок из внешнего мира -->

рецепты fs_cli

клиентские устройства за NAT

добавить в /etc/freeswitch/sip_profiles/internal.xml

<param name="apply-nat-acl" value="nat.auto"/>

freeswitch увидя такой флаг будет включать вызов для абонента, в контакте которого есть серый адрес - через IP, с которого этот абонент регистрируется. При включении этой опции не нужен SIP ALG, его рекомендуется отключать, оставляя только nf_conntrack_sip на шлюзах с NAT'ом.

осуществление звонков из fs_cli

Для создания вызова из fs_cli нужно использовать команду originate. Пример:

originate {origination_caller_id_number=1001}sofia/gateway/rostelecom/88002008686 88002008686 XML default 1001 1001

Просто проверить идёт абоненту звонок или нет:

 
originate user/530 &park()