ФЭНДОМ


ДОКУМЕНТ В РАЗРАБОТКЕ!

Загрузка и установка компонентовПравить

Установка компонентов из репозиторияПравить

apt-get update
apt-get install xvfb x11vnc openjdk-6-jdk unzip

Загрузка и установка SKYPEПравить

wget -c http://www.skype.com/go/getskype-linux-deb-32
dpkg -i getskype-linux-deb-32

Разрешим зависимости

apt-get -f install

Добавим null-драйвер звуковой карты для работы Skype внутри виртуальной машины

echo "snd-dummy" >>/etc/modules
modprobe snd-dummy

Загрузка SipToSisПравить

Скачиваем через браузер файл SipToSis_20111012.zip со страницы

http://www.mhspot.com/sts/siptosis_download.php

Помещаем его на сервер в папку

/tmp

Создадим директорию в которую распакуем архив:

mkdir /etc/siptosip
cd /etc/siptosip
unzip /tmp/SipToSis_20111012.zip

Создадим скрипт автозапуска

nano /etc/skypestart
/usr/bin/Xvfb :101 -ac &
sleep 10
DISPLAY=:101 /usr/bin/skype &
x11vnc -display :101 &
DISPLAY=:101 /etc/siptosip/SipToSis_linux > /var/log/siptosip.log &

И назначим его на исполнение в файл

nano /etc/rc.local

Впишем:

/etc/skypestart
exit 0

НастройкаПравить

Настройка SipToSysПравить

Закомментируем содержимое или очистим файл

nano  /etc/siptosip/SkypeToSipAuth.props

И добавим строку для перенаправления входящих со скайпа в asterisk

*,sip:[skypecallerid]@x.x.x.x

где x.x.x.x - ip адрес Asterisk сервера

Назначим разрешения на запуск

chmod +x /etc/siptosip/SipToSis_linux
chmod +x /etc/skypestart

Запускаем все компоненты skype шлюза

/etc/skypestart

Подключаемся по vnc и настраиваем Skype в графическом режиме, ставим галочку разрешить подключение компонента и настраиваем учетную запись.

Настройка Asterisk+FreePBXПравить

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

Предположим все выходы на Skype будут начинаться с префикса 0 и соответчтвенно определяться входящие должны аналогично 0SkipeID

Создадим контекст для этой цели на серевер Asterisk

nano /etc/asterisk/extensions_custom.conf
[from-skype]
exten => s,1,Answer
exten => s,n,Set(CALLERID(all)="SKYPE: ${CALLERID(name)} <0${CALLERID(name)}>")
exten => s,n,goto(from-trunk,000901,1)
include => from-trunk

Далее через WEB интерфейс FREEPBX добавляем новый SIP транк

host=x.x.x.x
port=5070
type=friend
disallow=all
allow=alaw
context=from-skype
qualify=yes
canreinvite=no
nat=no

где x.x.x.x - это ип адрес сервера на котором установлен клиент Skype и SipToSys

  • Создаем входящий маршрут. Указываем в качестве DID номер 000901 который указали в контексте from-skype
  • Создаем исходящий маршрут с префиксом 0|. и направляем в наш только что созданный транк.

Проблемы и решенияПравить

ЗависанияПравить

Иногда по непонятной причине siptosis пишет следующую ошибку:

Error getting call TIMESTAMP - Skype gone

после чего перестают приниматься входящие звонки. Данный скрипт проверяет эту ситуацию и перезапускает siptosis и заодно Skype. Кроме этого он контролирует наличие в памяти нужных для работы системы процессов, и если их нет инициирует их перезапуск.

#!/bin/bash
pres=`ps ax | grep "SipToSis_linux" | grep -v "S+" | wc -l`
if [ $pres = 0 ]
  then
        DISPLAY=:101 /etc/siptosip/SipToSis_linux > /var/log/siptosip.log &
fi
 
in=`cat /var/log/siptosip.log |grep "Error getting call TIMESTAMP - Skype gone" | wc -l`
if [ 1 -le $in ]
 then
     killall skype && DISPLAY=:101 /usr/bin/skype &
     sleep 10
     kill `ps ax | grep "/etc/siptosip/SipToSis_linux" | grep -v "S+" | awk '{print $1}' | sed -n 'H;${x;s/\n/ /g;p}'`
     kill `ps ax | grep "siptosis.jar" | grep "Sl" | awk '{print $1}' | sed -n 'H;${x;s/\n/ /g;p}'`
     DISPLAY=:101 /etc/siptosip/SipToSis_linux > /var/log/siptosip.log &
fi

Делаем скрипт запускающимся

chmod +x /etc/siptosip/ponpin

И добавляем в крон на запуск раз в минуту

echo "* * * * * root /etc/siptosip/ponpin" >> /etc/crontab

Полезные команды Править

для перезапуска SipToSys необходимо выполнить

killall java
DISPLAY=:101 /etc/siptosip/SipToSis_linux