Пациент - Asterisk 1.8 на Ubuntu-server 9.04. Задача - привязать к астериску аккаунт скайп, чтобы принимать звонки из скайпа на SIP телефон, и звонить с SIP телефона по скайпу. Для этого существует штатное расширение Asterisk производства Digium, но оно коммерческое и лицензии стоят денег. Однако существует свободный проект - SipToSis (
http://www.mhspot.com/sts/siptosis.html), позволяющий сделать то же самое.
Итак, как я все это настраивал.
Для запуска Skype в консольном Linux используем Xvfb (X Virtual Frame Buffer) и для настройки Skype с другой машины - x11vnc:
apt-get install xvfb x11vnc
Скачаем и установим собственно Skype:
Качаем последнюю версию с
http://www.skype.com, устанавливаем:
dpkg -i skype.deb
Для работы SipToSis необходима Java версии не ниже 1.5. Установим:
sudo apt-get install sun-java6-jre
Cкачаем SipToSis:
http://www.mhspot.com/sts/siptosis_download.phpРазархивируем в /etc/siptosis и проставим chmod на исполняемый файл:
chmod +x /etc/siptosis/SipToSis_linux
Теперь настроим asterisk. В users.conf добавим:
[Skype]
username=Skype
type=friend
context=Skype
secret=
host=dynamic
nat=no
dtmfmode=auto
canreinvite=no
incominglimit=1
outgoinglimit=1
call-limit=1
busylevel=1
В extensions.conf добавим
exten => 1001,1,Dial(SIP/Skype/echo123)
И перезагрузим asterisk.
Теперь правим конфиг SipToSis:
sudo nano /etc/siptosis/siptosis.cfg
Закомментируем блок настроек, начинающийся с "#Sample AUTO config with NO registration"
Раскомментируем блок "#Sample Asterisk registration example", поправим:
host_port=5070
contact_url=sip:Skype@127.0.0.1:5070
from_url="Skype" <sip:Skype@127.0.0.1:5060>
username=Skype
realm=asterisk
passwd=
expires=300
do_register=yes
minregrenewtime=120
regfailretrytime=15
Запускаем:
sudo /usr/bin/Xvfb :101 -ac &
sudo DISPLAY=:101 /usr/bin/skype &
sudo x11vnc -display :101 &
Подключаемся с другой машины (в моем случае, с Windows XP через VNC Viewer), вводим в Skype логин-пароль, отключаем все лишнее.
Теперь запускаем :
DISPLAY=:101 /etc/siptosis/SipToSis_linux
Если все сделано правильно, SipToSis запустится и попытается подключиться к Skype. Skype выдаст вопрос - разрешить ли подключение. Разрешаем и ставим галку "запомнить".
Проверяем: набираем с подключенного к Asterisk клиента 1001 - мы должны услышать тестовый звонок Skype.
Чтобы принимать входящие звонки, в /etc/siptosis/SkypeToSipAuth.props прописываем соответствующее правило. Например:
*,sip:user1@127.0.0.1:5060 - перенаправлять все входящие звонки Skype SIP-юзеру "user1". Естественно, нужно создать в extensions.conf контекст "Skype", в котором разрешить звонки на этот extension.