Сделать такой шлюз я решил когда понял что SFA можно будет купить только до 26 июля и зарегистрировать его нужно тоже до 26 июля, Лицензия SFA привязывается как минимум к мак адресу железа на котором он установлен и для этого я взял ALIX и Voyage Linux.
Задачи:
1) Обеспечить входящий вызов из сети Skype в SIP.
2) Обеспечить исходящие вызовы из SIP сеть в Skype.
Для начала купил тут собранную коробку на базе плат ALIX с предустановленной Askozia. Поскольку Askozia никак не дружит с SFA снес ее сразу . Выбор пал на дистрибутив Voyage который прекрасно работает на ALIX-ах и устанавливается за 5 минут на любую CF карту.
Установка Voyage:
Скачаем архив Voyage, распаковываем и выполняем скрипт для установки его на CF карту.
cd /tmp wget www.voyage.hk/download/voyage/voyage-0.7.5.tar.bz2 tar -axf voyage-one-0.7.5.tar.bz2 cd voyage-one-0.7.5 ./usr/local/sbin/voyage.update
далее нужно в меню установки выбрать параметры:
Configuration details:
----------------------
Distribution directory: /home/alexcr/Voyage-one.ru/voyage-one-0.7.5
Disk/Flash Device: /dev/sdb
Installation Partition: /dev/sdb1
Create Partition and FS: yes
Bootstrap Partition: /dev/sdb1
Will be mounted on: /mnt/cf
Target system profile: ALIX
Target console: serial
Target baud rate: 38400
Bootstrap installer: grub
Bootstrap partition: /dev/sdb1
OK to continue (y/n)?
Установка пакетов:
Для того чтобы собрать asterisk И SFA нужно установить требуемые пакеты.
ssh root@192.168.0.100 ###пароль voyage### remountrw ###монтируем файловую систему Read&Write### apt-get update apt-get install mc aptitude vim -y aptitude install make asterisk-1.8 libncurses5-dev build-essential libstdc++6-4.4-dev gcc glibc-2.11-1 -y
Установка Asterisk & SFA
cd /usr/src/ wget downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.4.4.tar.gz wget downloads.digium.com/pub/telephony/skypeforasterisk/asterisk-1.8.0/x86-32/skypeforasterisk-1.8.0_1.1.4-x86_32.tar.gz wget downloads.digium.com/pub/register/x86-32/register tar axvf skypeforasterisk-1.8.0_1.1.4-x86_32.tar.gz tar axvf asterisk-1.8.4.4.tar.gz cd asterisk-1.8.4.4/ ./configure --disable-xmldoc make menuselect make && make install && make samples cd ../skypeforasterisk-1.8.0_1.1.4-x86_32/ make && make install cp chan_skype.conf.sample /etc/asterisk/chan_skype.conf
Запуск Asterisk и SFA
Запускаем asterisk и проверяем есть ли модуль SFA в системе.
/etc/init.d/asterisk restart asterisk -rvvvv CLI> skype show version Skype For Asterisk Components: Channel Driver: 1.8.0_1.1.4 Library: UNKNOWN_and_probably_unsupported
Регистрация SFA
Для работы SFA нужна купить ключ активации на нужное вам количество каналов, стоимость на один Skype канал составляет $66 его купил за 5 минут тут. Активация ключа делается с утилитой register.
chmod 777 register
./register
1 - Digium Products
7 - Skype For Asterisk
Please enter your Key-ID: S4A-LM2WQTTGZGZG
Do you accept this licensing agreement (y/n)? y
First Name: Last Name: Company: Address 1: Address 2: City: State: Postal Code: Country: Phone: E-Mail:
Проверим есть ли лицензия в системе
/etc/init.d/asterisk restart asterisk -rvvv voyage*CLI> skype show licenses Skype For Asterisk Licensing Information ======================================== Total licensed channels: 1 Licenses Found: File: S4A-LM2WQTTGZGZG.lic -- Key: S4A-LM2WQTTGZGZG -- Expires: 2031-06-29 -- Host-ID: e4:07:e8:a8:d1:99:3b:f2:45:ea:7e:20:b8:4f:30:bd:7c:7b:5b:1c -- Channels: 1 (OK)
Настройка SIP и Skype аккаунта
Добавим SIP аккаунт в sip.conf
[sip-skype](!) type=friend context=from-sip host=dynamic nat=yes qualify=yes canreinvite=no dtmfmode=rfc2833 disallow=all allow=ulaw allow=alaw callwaiting=yes [101](sip-skype) username=101 secret=mypass [102](sip-skype) username=102 secret=mypass
Настроим диалплан для звонков из сети Skype в SIP extensions.conf
[from-skype-user1] exten => s,1,NOOP(From Skype ${CALLERID} to ${EXTEN}) exten => s,n,Dial(SIP/101,60,r) exten => s,n,Hangup [from-skype-user2] exten => _X.,1,NOOP(From Skype ${CALLERID} to ${EXTEN}) exten => _X.,n,Dial(SIP/102,60,r) exten => _X.,n,Hangup
Настроим диалплан для звонков на skype аккаунты и для внешних звонков
[from-sip] exten => 201,1,NOOP(From SIP ${CALLERID} to ${EXTEN}) exten => 201,2,Dial(SKYPE/alexcr.telecom,60,Tr) exten => 201,n,Hangup exten => 202,1,Dial(SKYPE/skype-contact,60,Tr) exten => 203,1,Dial(SKYPE/skype-contact2,60,Tr) exten => 202,1,Dial(SKYPE/skype-contact3,60,Tr) exten => _00X.,1,NOOP(Dial to Skype PSTN ${CALLERID} to ${EXTEN}) exten => _00X.,2,Dial(SKYPE/${EXTEN},60,Tr) exten => _00X.,n,Hangup
Настроим chan_skype.conf
[skype-user-1]
secret=skype-pass
context=from-skype-user1
exten=s
disallow=all
allow=ulaw
direction=both
auth_policy=accept
buddy_autoadd=true
autoreply = Этот пользователь не может получать текстовые сообщения, пожалуйста отправьте ваше сообщения на емайл I@mail.ru
[user2]
secret=userpass2
context=from-skype-user2
exten=s
disallow=all
allow=ulaw
direction=both
auth_policy=accept
autoreply = Этот пользователь не может получать текстовые сообщения, пожалуйста отправьте ваше сообщения на емайл I@gmail.com
Проверяем статус Skype аккаунтов в asteriske
voyage*CLI> skype show users Skype Users user2: Logged In Проверяем звонки на Skype -- Executing [201@from-sip:1] NoOp("SIP/101-00000004", "From SIP to 201") in new stack -- Executing [201@from-sip:2] Dial("SIP/101-00000004", "SKYPE/alexcr-telcom,60,Tr") in new stack -- Called alexcr-telcom -- Skype/user2-0854f990 is ringing -- Skype/user2-0854f990 answered SIP/101-00000004 == Spawn extension (from-sip, 201, 2) exited non-zero on 'SIP/101-00000004' Проверяем звонки на SIP -- Executing [s@from-skype-user1:1] NoOp("Skype/user1-085004a8", "From Skype to s") in new stack -- Executing [s@from-skype-user1:2] Dial("Skype/user1-085004a8", "SIP/101,60,r") in new stack == Using SIP RTP CoS mark 5 -- Called 101 -- SIP/101-00000005 is ringing -- SIP/101-00000005 answered Skype/user1-085004a8 == Spawn extension (from-skype-user1, s, 2) exited non-zero on 'Skype/user1-085004a8'
Дополнительная документация:
Как зарегистрировать skype аккаунт для SFA
README-voyage
README-SFA
Digium-register
source: http://habrahabr.ru/blogs/DIY/123566/