Skype-шлюз на базе FreeSWITCH и Asterisk

Больше
7 года 7 мес. назад - 4 года 8 мес. назад #6 от TOLLIFi
COM_KUNENA_MESSAGE_CREATED_NEW
Этот пост описывает опыт установки и настройки Skype-шлюза для перенаправления всех вызовов в VoIP-сеть на SIP/IAX2-телефоны. Вся установка и тестирование осуществляется под управлением ОС Linux Debian с использованием PBX FreeSWITCH и внешним подключением к Asterisk.

Так как Skype на данный момент является, пожалуй, самым популярным VoIP-клиентом среди пользователей, возможность позвонить в Вашу компанию через Skype будет дополнительным плюсом для клиентов. И так начнем...



ОБЩЕЕ ОПИСАНИЕ И ПРИНЦИП РАБОТЫ
[/b]


Для поставленной задачи было выбрано следующее Linux-ПО:

1. Linux Debian
2. Skype-клиент
3. mod_skypopen
4. FreeSWITCH
5. Asterisk

В принципе, mod_skypopen (бывший mod_skypiax) (модуль для интеграции со Skype-клиентом) может работать и с Asterisk, но в данном случае использовался дополнительно FreeSWITCH, поскольку изначально этот модуль создавался именно для него и, соответственно, проблем будет меньше, а расширяемость VoIP-сети больше, что особенно важно для крупных сетей IP-телефонии.

Общая схема взаимодействия VoIP-компонентов представлена на рис.1.
Рисунок 1 - Схема взаимодействия VoIP-компонентов

Ключевым элементом всей схемы является mod_skypopen, который играет роль некой прослойки между FreeSWITCH и сетью Skype. Этот модуль в терминологии FreeSWITCH является канальным драйвером или конечной точкой (endpoint), такой же как, например, обычный IP-телефон.

Так как протокол Skype закрыт, то единственным способом подключения к сети Skype остается родной клиент, с которым mod_skypopen взаимодействует посредством Skype API. Каждый запущенный Skype приравнивается к одному голосовому каналу, т.е. если у Вас запущено 30 Skype'ов Вам могут одновременно звонить 30 человек. Стоит отметить, что в данной статье рассматривается использование всего одного Skype-акаунта, который одновременно используется всеми запущенными Skype'ами.

За SIP в FreeSwitch отвечает модуль mod_sofia, который, как видно на схеме, обеспечивает SIP-транк до Asterisk PBX.

Для минимизации нагрузки на сервер используется «fake» X-сервер Xvfb и snd_dummy-драйвер. Использование dummy-драйвера также обосновано тем, что на серверах, как правило, отсутствует настоящая звуковая карта.

Алгоритм входящего вызова выглядит примерно так:

1. Пользователь инициирует вызов на Ваш Skype-акаунт.
2. mod_skypiax принимает вызов используя первую свободную копию skype-клиента.
3. mod_sofia инициирует SIP-соединение с Asterisk PBX.
4. Коммутация соединения между mod_sofia и mod_skypopen.



УСТАНОВКА И НАСТРОЙКА ПО
[/b]


--- УСТАНОВКА FREESWITCH И КОМПИЛЯЦИЯ МОДУЛЯ MOD_SKYPOPEN >>>

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]



--- УСТАНОВКА И НАСТРОЙКА SKYPE-КЛИЕНТА >>>

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]



--- НАСТРОЙКА MOD_SKYPOPEN >>>

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]



--- НАСТРОЙКА SIP-ТРАНКА МЕЖДУ FREESWITCH И ASTERISK >>>

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]



--- ИТОГО: ОСНОВНЫЕ ЭТАПЫ КОНФИГУРАЦИИ SKYPE-ШЛЮЗА НА БАЗЕ FREESWITCH >>>

1. freeswitch >>> mod_skypopen:
nano /usr/local/freeswitch/conf/autoload_configs/skypopen.conf.xml
2. freeswitch >>> dialplan:
nano /usr/local/freeswitch/conf/dialplan/default/02_skype.xml
3. freeswitch >>> asterisk:
nano /usr/local/freeswitch/conf/sip_profiles/external/asterisk.xml
4. asterisk >>> sip.conf / extensions.conf:
nano /etc/asterisk/sip.conf
nano /etc/asterisk/extensions.conf
5. asterisk >>> running...:
/etc/init.d/asterisk start
6. skype >>> running...:
sh /usr/local/freeswitch/scripts/skype_client start
7. freeswitch >>> running...:
/usr/local/freeswitch/bin/freeswitch

--- DEBUG: >>>

Если не отображается лог в консоли FreeSWITCH при входящем вызове из Skype-сети или не отображается клиент при коннекте с VNC Viewer'а, необходимо вручную перезапустить Skype-клиент и заново проверить настройки клиента.

На этом все! Удачи!
[/b]

IT и Телеком: IP-телефония, интернет-технологии, программирование, web-сервисы.
Вложения:
Last edit: 4 года 8 мес. назад by TOLLIFi.
Спасибо сказали: astray

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 4 мес. назад - 4 года 4 мес. назад #186 от astray
COM_KUNENA_MESSAGE_REPLIED_NEW
Почти прошел сей славный алгоритм под AsteriskNOW(CentOS 6.5)
1. Исходники более недоступны по указанному адресу. Использовал files.freeswitch.org/
2. Файл bootstrap.sh отсутствует, использовал rebootstrap.sh
3. Устанавливал скайп так:

Установка SKYPE-клиента

Создать файл /etc/yum.repos.d/skype.repo и внести в него

[skype]
name=Skype Repository
baseurl=http://download.skype.com/linux/repos/fedora/updates/i586/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-skype

yum --nogpgcheck install skype

4. Init-скрипт /usr/src/freeswitch/debian/freeswitch.init отсутствует.
5. x11vnc Я не нашел, использовал tigervnc.
Итог у меня - epic fail. Срезался на ошибке:
[root@localhost old-stuff]# ./skypopen_auth :1
Invalid MIT-MAGIC-COOKIE-1 keyCannot open X Display ':1', exiting
ввел
rm ~/.Xauthority*
но появилась другая проблема:

No protocol specified

Переустановил скайп на версию 4.2 и теперь

No protocol specified

при попытке запуска
su skype -c "/bin/echo 'skyuser skypass'| DISPLAY=:1 /usr/bin/skype --dbpath=/home/skype/multi/interface01 --pipelogin &"
Решить проблему не смог, красноглазие не развито :oops: Прошу понять и простить!
Last edit: 4 года 4 мес. назад by astray.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум