Asterisk и IP-телефония

Cвязка Asterisk и Skype через SipToSis :RA1AIE

Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.

RA1AIE
Записки айтишника-радиолюбителя
Детали
Cвязка Asterisk и Skype через SipToSis
Автор:
RA1AIE
Янв
17
Пациент - Asterisk 1.8 на Ubuntu-server 9.04. Задача - привязать к астериску аккаунт Skype, чтобы принимать звонки из скайпа на IP-телефон, и звонить с IP-телефона по скайпу. Для этого существует штатное расширение Asterisk производства Digium, но оно коммерческое и лицензии стоят денег. Однако существует свободный проект -
SipToSis
, позволяющий сделать то же самое, пусть и путем предварительных ритуальных плясок с сисадминским народным музыкальным инструментом.
Первое, что нам понадобится - это сам скайп, ибо альтернативных клиентов ввиду закрытости протокола не существует, и SipToSis работает путем взаимодействия с ним через Skype API. Поскольку для работы Skype нужна графическая оболочка, то чтобы запустить его в консольном Linux, используем Xvfb (X Virtual Frame Buffer), и для настройки с другой машины - x11vnc:
sudo apt-get install xvfb x11vnc
Скачаем и установим собственно Skype: качаем последнюю версию deb-пакета с
http://www.skype.com
, сохраняем как skype.deb, устанавливаем:
sudo dpkg -i skype.deb
Для работы SipToSis необходима Java версии не ниже 1.5. Установим:
sudo apt-get install sun-java6-jre
Cкачаем SipToSis c
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”
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 логин-пароль, отключаем все лишнее.
Теперь запускаем :
sudo 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.
Разумеется, все вышеописанное - тестовый вариант. Для установки этого решения на постоянной основе, гораздо удобнее написать скрипт, который будет запускать все необходимое. Ну и, конечно же, в целях безопасности запускать все это нужно из-под отдельного пользователя, ни в коем случае не из-под рута.
Рубрика:
Сисадминское
Подпишись на комментарии через RSS!
Trackback
4 коммент.
Пишет Денис | дата: 17.02.2011 в 17:26
Привет ГУРУ Линуксов! Классная статья, но есть вопрос один…. что делать если нужно звонить нескольким людям одновременно? запустить две копии скайп у меня получилось, но вот сиптусис работает только в одном єкземпляре
когда пітаешся запустить второй, пишет что адрес мол уже используется
помоги пожалуйста
Пишет
RA1AIE
| дата: 17.02.2011 в 17:54
Ну так вторую копию siptosis нужно вешать не на тот же порт, что и первую. А вообще, если нужно несколько звонков одновременно - не лучше ли присмотреться к официальному решению от Digium?
Пишет Денис | дата: 18.02.2011 в 09:40
Неа, это дело принципа, я уверен что можно сделать это и в бесплатном варианте
если уже начал то нужно добить этого зверя
платные варианты не наш метод
вообщем я так понял ты не задавался подобной целью?
Пишет
max
| дата: 24.03.2011 в 14:26
Вот тут про многоканальность
http://habrahabr.ru/blogs/voip/68399/
Имя (обязательно)
Почта (will not be published) (обязательно)
Сайт
QSL
QTH Loc: KO59EU, WAZ: 16, ITU:29, RDA: SP-19
EPC #10952
Свежие записи
Мобильный шек
Полевой день - 2011
Помним.
Питер-Москва-Питер
Новый шек
Завтра весна
Охота на лису
Восстановление Cisco 827-4v через rommon
Сапожник без сапог
Cвязка Asterisk и Skype через SipToSis
Рубрики
Без рубрики
Радиолюбительское
Сисадминское
Архивы
Май 2011
Апрель 2011
Февраль 2011
Январь 2011
Сентябрь 2010
Июнь 2010
Май 2010
Апрель 2010
Март 2010
Февраль 2010
Позвонить +7 (343) 382-33-16