Flash — Skype аудио конференция своими руками

Цель этой статьи — настроить голосовую конференцию между несколькими флеш-приложениями и Skype-аккаунтами. В результате мы должны получить Flash-Skype конференцию

Нам потребуется следующий софт:
1. Linux Centos 5.x. — Бесплатный
2. Adobe Flash Player 10 10 — Бесплатный http://adobe.com
3. JDK — Бесплатный http://oracle.com
4. Asterisk— Бесплатный http://asterisk.org
5. Skype — Бесплатный http://skype.com
6. Skype-For-Asterisk плагин (он же SFA). http://www.digium.com
7. Xlite 3.0. — Бесплатный http://counterpath.com/
8. Flashphoner — Бесплатная “10-connects Developer Version” http://flashphoner.com
9. Wowza Media Server 2.1.2 — Free 10-connects developer license http://wowzamedia.com

План:
1. Установка Asterisk
2. Установка JDK
3. Установка Wowza Media Server
4. Установка Flashphoner
5. Установка SFA (Skype-for-Asterisk)
6. Создание менеджерского аккаунта в Skype
7. Установка Xlite
8. Тест звонка Skype —> Xlite
9. Тест звонка Xlite —> Skype
10. Тест звонка Skype —> Flash
11. Тест звонка Flash —> Skype
12. Тест конференции Xlite+Xlite+Skype
13. Тест конференции Flash+Flash+Skype
14. Аудио кодеки
14. Резюме

1. Установка Астериска
— Скачайте tar-архив здесь http://www.asterisk.org/downloads/asterisk/releases/asterisk-1.6.2.10.tar.gz
— Установите его по обычной схеме: configure, make, make install
Эти библиотеки понадобятся для нормальной работы Asterisk:
— openssl, openssl-dev
— ncurses-devel
— zlib-devel
— libxml2-devel
— g++(gcc-c++)
— Поправьте конфиги sip.conf и extensions.conf. Они должны выглядеть вот так:

*********************
sip.conf

[general]
bindport=5060
bindaddr=101.226.102.61
context=default
allow=all

[2000]
type=friend
secret=2000
host=dynamic
canreinvite=no

[2001]
type=friend
secret=2001
host=dynamic

[2002]
type=friend
secret=2002
host=dynamic
*********************
extensions.conf

[default]
;exten=>2001,1,Dial(Skype/myaccount@my_personal_skype_account)
;exten=>myaccount,1,Dial(SIP/2000)

exten=>2001,1,Answer
exten=>2001,2,ConfBridge(1,Ma)

exten=>myaccount.1,1,Answer
exten=>myaccount.1,2,ConfBridge(1,Ma)
*********************

Мы вернемся к этим файлам в пункте “8. Тест звонка Skype —> Xlite”

2. Установка JDK
— Скачайте последнюю версию JDK тут:
http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html
JDK требуется для работы Wowza Media Server.
— Установите JDK.

3. Установка Wowza Media Server
— Скачайте Wowza Developer Edition здесь — wowzamedia.com/store.html
— Установите это
Если вы используете дистрибутив rpm.bin, Wowza устанавливается запуском
скачанного файла ./WowzaMediaServer-2.1.2.rpm.bin

4. Flashphoner installation
Это серверное ПО, позволяющее вам разрабатывать флеш-телефона и
флеш-Click2Call кнопки. Flashphoner может соединить любое приложение,
написанное на Flash с любым SIP клиентом (например, софтфоном).
Дргуими словами, Flashphoner — Flash-SIP шлюз, позволяющий звонить с флеш
приложений на стационарные и мобильные телефоны
— Скачайте Flashphoner здесь flashphoner.com/.
— Проверьте, установили ли вы Wowza Media Server, JDK и gcc.
— Установите Flashphoner

5. Установка SFA (Skype-for-Asterisk)
SFA (Skype-for-Asterisk) — это платный плагин к Астериску. Одна линия стоит $66.
— Прочитайте документацию и ознакомьтесь с расценками здесь
http://www.digium.com/en/products/software/skypeforasterisk.php
— Приобретите SFA лицензию. Ключ вам вышлют по электронной почте.

Теперь вам нужно зарегистрировать ключ на ваш сервер. После этого ключ будет
привязан к серверу по мак-адресу. Учтите, что при изменении мак-адреса (смене
сетеовй карты или переезде на новый сервер), ключ нужно будет
перерегистрировать.

****** Начало регистрации ******
— Скачайте программу регистрации здесь http://downloads.digium.com/pub/register/
— Выберите исполнитяемый файл, подходящий для архитектуры вашей системы и запустите его
— Укажите вашу личную и контактную информацию, такую, как имя, адрес, телефон и т.д…
— Укажите ваш ключ
После успешного завершения процедуры, программа регистрации создаст *.lic-file в директории /var/lib/asterisk/licenses/
****** Конец регистрации ******
— Сделайте бекап директории с вашей лицензией.
— Скачайте непосредственно сам плагин здесь
http://downloads.digium.com/pub/telephony/skypeforasterisk/
— Установите плагин по обычной схеме: make, make install
— Загрузите SFA модуль в Астериск. Это можно сделать с помощью команд:
a) Команда для входа в консоль Астериска
$asterisk -r
B) Команда для загрузки двух модулей
*CLI> module load res_skypeforasterisk.so
*CLI> module load chan_skype.so
— Поздравляем! SFA установлен и готов к работе.

6. Создание менеджер-аккаунта Skype
— Создайте менеджер-аккаунт здесь http://www.skype.com/intl/ru/business
Менеджер-аккаунт в скайпе — это “доменный аккаунт”, он позволяет создавать дочерние аккаунты и управлять ими. Этот менеджер-аккаунт вам нужен, даже если у вас уже есть ваш собственный аккаунт (несмотря на то, что Skype будет предлагать использовать именно существующий)
— Создайте дочерний аккаунт для вашего Менеджер-аккаунта (SFA работает только с
дочерними аккаунтами)
— Настройте ваш SFA на работу с новым дочерним аккаунтом. Конфиг должен выглядеть
так:

*********************
chan_skype.conf

[general]
engine_directory=/home/skype
debug=yes

[myaccount]
context=default
secret=myaccount_password
disallow=all
allow=ulaw
*********************

Где:
myaccount – ваш новый дочерний аккаунт
myaccount_password — пароль к нему

7. Установка Xlite
— Скачайте бесплатную версию Xlite здесь counterpath.com
— Установите его и запустите
— Добавьте в меню “SIP Account Settings” новый аккаунт со следующими параметрами:
*********************
Display Name: 2000
User name: 2000
Password: 2000
Authorization user name: 2000
Domain: 101.226.102.61
*********************
“101.226.102.61” взято для примера. Задайте в качестве домена ip-адрес вашего
Астериск-сервера. Порт 5060 используется по умолчанию.

8. Тест звонка Skype—>Xlite
— Поправьте конфиг extensions.conf (см. раздел “1. Установка Asterisk”), чтобы он выглядел так (почти все нужно удалить, оставьте только раздел [default])
*********************
extensions.conf

[default]
exten=>myaccount,1,Dial(SIP/2000)
*********************
— Проверьте конфиг sip.conf (он должен выглядеть как в разделе “1. Установка Asterisk”)
— Проверьте конфиг chan_skype.conf (он должен выглядеть, как в разделе “6. Создание менеджер-аккаунта Skype”)
— Позвоните с вашего личного скайп-аккаунта на ваш новый дочерний скайп-аккаунт.
Если все настроено правильно, звонок пойдет по следующему пути:

a. Ваш_Скайп_Аккаунт—> Доч_Скайп_Аккаунт
b. Доч_Скайп_Аккаунт —> Asterisk (с помощью chan_skype.conf)
c. Asterisk —> 2000 (с помощью extensions.conf)
d. 2000 —> Xlite (с помощью “SIP Account Settings”)

В результате мы должны дозвониться на Xlite на номер 2000 и поговорить с ним,
хотя изначально звонили мы на ваш дочерний скайп- аккаунт.

9. Тест звонка Xlite —> Skype
— Поправьте конфиг extensions.conf (см. раздел “1. Установка Asterisk”), чтобы он
выглядел так
*********************
extensions.conf

[default]
exten=>2001,1,Dial(Skype/myaccount@my_personal_skype_account)
*********************
— Проверьте конфиг sip.conf (он должен выглядеть как в разделе “1. Установка Asterisk”)
— Проверьте конфиг chan_skype.conf (он должен выглядеть, как в разделе “6. Создание менеджер-аккаунта Skype”)
— Позвоните с Xlite с номера 2000 на номер 2001
Если все настроено верно, ваш звонок пойдет по следующему пути:

a. Xlite —> 2001
b. 2001 —> Asterisk
c. Asterisk —> Доч_Скайп_Аккаунт (с помощью extensions.conf)
d. Доч_Скайп_Аккаунт —> Ваш_Скайп_Аккаунт (с помощью chan_skype.conf)

10. Тест звонка Skype—>Flash
— Аналогично разделу “8. Тест звонка Skype—>Xlite”, только вместо Xlite нужно
использовать Flashphoner.

11. Test Flash—>Skype call
— Аналогично разделу “9. Тест звонка Xlite—>Skype”, только вместо Xlite нужно
использовать Flashphoner.

12. Тест конференции Xlite+Xlite+Skype
— Поправьте конфиг extensions.conf, чтобы он выглядел так:
*********************
extensions.conf

[default]
exten=>2001,1,Answer
exten=>2001,2,ConfBridge(1,M)

exten=>myaccount.1,1,Answer
exten=>myaccount.1,2,ConfBridge(1,M)
*********************
Пояснения
— exten=>2001,1,Answer значит “на входящие звонки на номер 2001 отвечать
автоматически”
— exten=>2001,2,ConfBridge(1,M) значит “затем с помощью модуля “ConfBridge”
переводить звонки на конференцию с именем 1” и играть им музыку(М), пока
звонящий только один.” — Если звонящих несколько — начинается конференция
— Модуль “ConfBridge” есть в сборках Asterisk начиная с версии 1.6
— Чтобы просмотреть все функции модуля “ConfBridge”, используйте эту команду
*CLI> core show application ConfBridge

— Залогиньтесь под аккаунтами 2000 и 2002 с помощью двух клиентов Xlite
— Залогиньтесь в Скайпе под вашим персональным аккаунтом
— Позвоните с 2000 на 2001
— Позвоните с 2002 на 2001
— Позвоните с вашего скайп-аккаунт на дочерний скайп-аккаунт
— Поздравляем! Если все настроено правильно, вы должны участвовать в конференции из трех человек.

Кстати: Астериск нужно рестартить после каждого изменения в конфигах

13. Тест конференции Flash+Flash+Skype
— Аналогично разделу “12. Test Xlite+Xlite+Skype conference”, только вместо Xlite нужно
использовать Flashphoner.

14. Аудио кодеки
Кодеки
Флеш-клиент — Speex 16kHz (wideband)
Направление FlashphonerAsterisk — G.711
Направление AsteriskSFASkype — G.729

15. Резюме
Итак, мы настроили конференцию между флеш-приложениями и Skype.
Эта функция востребована в сервисах флеш-конференций для возможности объединения флеш- и телефонных конференций. Эту возможность даёт Flashphoner — Flash-SIP сервер, который позволяет соединять Flash и SIP клиенты.