Ну не так много времени нужно, чтобы запостить ман...
На сервер 32 бит убунту проблем нет. Есть свои нюансы в 64. Выкладываю ман для серверной оси 32 бит с звуковой карточкой (так как при ее отсутствии нужно еще скомпилить виртуальную). В этой инструкции такого мана не имеется (из-за лени в первую очередь).
Делаем обновление системы, устанавливаем все необходимое для работы skype под Xvfb :
Код:
apt-get update
apt-get upgrade
apt-get install console-cyrillic
apt-get install mc git automake autotools-dev m4 htop autoconf libtool build-essential python-dev gnutls-bin libjpeg-dev libncurses5-dev git-core build-essential autoconf automake libncurses5 gawk libjpeg-dev libz-dev pkg-config -y
Некоторые рекомендуют заменить awk gawk-ом, делается это так:
Код:
update-alternatives --set awk /usr/bin/gawk
Собственно далее все для работы графики:
Код:
apt-get install libX11-dev
apt-get install fontconfig fontconfig-config libasound2 libaudio2 libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libfontconfig1 libgl1-mesa-dri libgl1-mesa-glx \
libglapi-mesa libice6 liblcms1 libllvm3.0 libmng1 libmysqlclient18 libqt4-core libqt4-dbus libqt4-declarative libqt4-designer libqt4-gui libqt4-network libqt4-opengl \
libqt4-script libqt4-sql libqt4-sql-mysql libqt4-svg libqt4-test libqt4-xml libqt4-xmlpatterns libqtcore4 libqtgui4 libsm6 libtiff4 libx11-xcb1 libxcb-glx0 libxdamage1 \
libxfixes3 libxi6 libxrender1 libxss1 libxt6 libxv1 libxxf86vm1 mysql-common qdbus ttf-dejavu-core x11-common -y
apt-get install x11vnc
apt-get install xvfb
apt-get install xfonts-cyrillic
Далее процесс сборки Freeswitch + mod_skypopen. На всякий случай повторюсь :
Код:
cd /usr/src
git clone git://git.freeswitch.org/freeswitch.git
cd /usr/local/src/freeswitch
./bootstrap.sh
./configure
make
В этом случаи соберется FreeSwitch по default-у.
Редактируем modules.conf и раскоментируем mod_say_ru (чтобы наш FreeSwitch заговорил по русски) и собственно mod_skypopen:
Код:
mcedit modules.conf
mod_say_ru
mod_skypopen
Снова собираем (дабы убедится что все ок):
Код:
make
make install
В этом случаи будут собраны и установлены 2 мода.
Остается поставить звуки. Сразу скажу у меня здесь дубли, писал заметку для себя давно...
Код:
make cd-sounds-install
make cd-moh-install
make uhd-sounds-install
make uhd-moh-install
make hd-sounds-install
make hd-moh-install
make sounds-install
make moh-install
make cd-sounds-ru-install
make uhd-sounds-ru-install
make hd-sounds-ru-install
make sounds-ru-install
Далее засовываем init-скрипты для автозапуска freeswitch после перезагрузки:
Код:
cp debian/freeswitch.init /etc/init.d/freeswitch
cp debian/freeswitch.default /etc/default/freeswitch
В последнее время при установки с git эти скрипты отсутствуют. По этому есть смысл запостить в ветку (или прикрепить) текст такого скрипта. У меня он кривой, по этому считаю что нужно выложить оригинал из рабочего старого freeswitch.
Копируем пример конфига mod_skypopen в рабочее окружение freeswitch:
Код:
cp src/mod/endpoints/mod_skypopen/configs/skypopen.conf.xml /usr/local/freeswitch/conf/autoload_configs/
Добавляем пользователя freeswitch, присваиваем ему права на владение окружением:
Код:
adduser --disabled-password --quiet --system --home /usr/local/freeswitch --ingroup daemon freeswitch
adduser freeswitch audio
chown -R freeswitch.daemon /usr/local/freeswitch
Загрузку mod_skypopen каждый делает по своему... Ну соль в том, что сначала нужно запустить скайпы и лишь потом загружать freeswitch mod_skypopen.
1 вариант загрузки : запустить freeswitch с -nc параметрами, запустить скайпы и сделать что-то типа "fs_cli 'load mod_skypopen'";
2 вариант загрузки : записать строку "<load module="mod_skypopen"/>" в файл /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
Установка и настройка скайпа:
Код:
cd /usr/src/
wget http://lin-admin.ru/download/skype-debian_2.0.0.72-1_i386.deb
dpkg -i skype-debian_2.0.0.72-1_i386.deb
Добавляем пользователя skype и даем ему права на свой каталог:
Код:
adduser --home /home/skype --ingroup audio --disabled-password skype
mkdir -p /home/skype/multi/
chown -R skype.audio /home/skype/multi
Загрузка модуля ядра:
Код:
modprobe snd_dummy
rmmod snd_dummy
echo "snd_dummy" >> /etc/modules
Приступаем к настройке скайпов:
Код:
/usr/bin/Xvfb :101 -ac &
Код:
su skype -c "/bin/echo 'SkypeUSERName SkypePASSWORD'| DISPLAY=:101 /usr/bin/skype --dbpath=/home/skype/multi/interface01 --pipelogin &"
x11vnc -display :101
Редактируем конфиг по пути /home/skype/multi/interface01/SkypeUSERName/config.xml
Код:
mcedit /home/skype/multi/interface01/SkypeUSERName/config.xml
Ищем секцию <UI> и описываем секцию <API> </API>, дабы skypopen мог управлять скайпом через АРІ:
Код:
<UI>
<API>
<Authorizations>skypopen</Authorizations>
<BlockedPrograms></BlockedPrograms>
</API>
.
.
.
</UI>
Создаем скрипт для запуска скайпа (взято с хабра (с)):
Код:
mcedit /usr/local/bin/sk
Вставляем свое:
Код:
#!/bin/sh
SKYPE_SYSTEM_USER=skype
SKYPE_HOME=/home/skype/multi
SKYPE_USER=skype_user
SKYPE_PASSWORD=skype_secret
SKYPE_INSTANCES=N
XVFB=/usr/bin/Xvfb
module_reload() {
rmmod snd-dummy
modprobe snd-dummy
}
skype_start() {
for i in $(seq 1 $SKYPE_INSTANCES); do
i=`printf "%02d" $i`
$XVFB :1$i -ac >> /dev/null 2>&1 &
sleep 3
su $SKYPE_SYSTEM_USER -c "/bin/echo '$SKYPE_USER $SKYPE_PASSWORD'| DISPLAY=:1$i /usr/bin/skype \
--dbpath=$SKYPE_HOME/interface$i --pipelogin >> /dev/null 2>&1 &"
echo "Skype $i started"
done
}
skype_stop() {
kill -TERM `ps -u $SKYPE_SYSTEM_USER -o pid=` >> /dev/null 2>&1
sleep 3
kill -TERM `ps -C Xvfb -o pid=` >> /dev/null 2>&1
}
case "$1" in
start)
module_reload
sleep 3
skype_start
;;
stop)
skype_stop
;;
restart)
skype_stop
sleep 3
skype_start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
Правим конфиг skypopen.conf.xml:
Код:
mcedit /usr/local/freeswitch/conf/autoload_configs/skypopen.conf.xml
Приводим к виду:
Код:
<configuration name="skypopen.conf" description="Skypopen Configuration">
<global_settings>
<param name="dialplan" value="XML"/>
<param name="context" value="default"/>
<param name="destination" value="5000"/>
<param name="skype_user" value="SkypeUSERName"/>
<param name="report_incoming_chatmessages" value="true"/>
<param name="silent_mode" value="false"/>
<param name="write_silence_when_idle" value="true"/>
<param name="setsockopt" value="true"/>
</global_settings>
<!-- one entry here per each skypopen interface -->
<per_interface_settings>
<interface id="1" name="interface1">
<param name="X11-display" value=":101"/>
</interface>
</per_interface_settings>
</configuration>
Дописываем строку в vars.xml, чтобы freeswitch говорил по-русски:
Код:
mcedit /usr/local/freeswitch/conf/vars.xml
Строку:
Код:
<X-PRE-PROCESS cmd="set" data="default_language=ru"/>
Готово.
Чтобы проверить работу делаем в консоле:
Код:
1. sk start
2. /usr/local/freeswitch/bin/freeswitch
3. load mod_skypopen
4. sk list
5. Пробуем звонить на скайп-логин. Должны услышать приветствие!