В Ти Ай Системс мы всегда стремимся к упрощению коммуникаций. Специально для Вас мы подготовили статью, в которой расскажем, как объединить Skype и GTalk с Lync, для удобства Вашего общения.
Данная статья поможет Вам установить Asterisk, настроить совместную работу Asterisk-Skype, Asterisk-GTalk, а так же интегрировать Asterisk в существующую архитектуру Lync.
Для начала нам понадобится CentOS 6.2. Будем считать, что Вы уже установили CentOS 6.2 и произвели первоначальную настройку системы, поэтому приступим непосредственно к установке Asterisk:
Для стабильной работы ip-pbx Asterisk и Lync 2010 нам необходимо выполнить следующие действия:
1. В Lync 2010 Topology Builder добавить в PSTN gateways наш Asterisk, указав порт TCP 5060
2. После этого добавить роутинг звонков из Lync на внутренние номера Asterisk:
(В данном случае все звонки на внутренние номера [2,3]ххх из Lync будут переводиться в Asterisk. В примерах ниже мы будем использовать номера 2001, 2002).
3. Добавить в конфигурационный файл Asterisk sip.conf:
[Lync_Trunk] Имя транка для Линка
type=friend
port=5068 (Этот порт использует Lync сервер)
host=ххх.ххх.ххх.ххх IP-адрес нашего Lync сервера
dtmfmode=rfc2833
context=from-lync
qualify=yes
transport=tcp
4. В конфигурационный файл extensions.conf добавляем контекст from-lync для обслуживания звонков из Lync в Asterisk:
[from-lync]
exten=>_2XXX,1,Dial(SIP/${EXTEN})
exten =>_2XXX,2,playback(vm-nobodyavail)
exten =>_2XXX,3,playback(vm-goodbye)
exten=>_2XXX,n,hangup()
Теперь при звонке на добавочный номер Asterisk 2002 из Lync звонок переведется в Asterisk на внутренний номер.
Помимо этого, для осуществления звонков с внутренних номеров Asterisk на внутренние номера Lync нам необходимо в конфигурационный файл Asterisk extensions.conf добавить правила роутинга. Например, в контекст default добавляем:
exten=>_2XX,1,Dial(SIP/Lync_Trunk/${EXTEN})
exten=>_2XX,n,hangup()
exten=>_3XX,1,Dial(SIP/Lync_Trunk/${EXTEN})
exten=>_3XX,n,hangup()
Теперь мы сможем осуществлять звонки с номеров Asterisk 2ххх и 3ххх на внутренние номера абонентов Lync (в нашем примере 2хх и 3хх).
Данная интеграция позволит принимать звонки из Gtalk в Asterisk на внутренний номер, на IVR Asterisk или на IVR Lync (в нашем примере мы покажем, как сделать так, чтобы входящий звонок из GTalk переводился в группу вызова Lync):
1. Для регистрации Asterisk в GTalk нам понадобится аккаунт в google. Создаем его. После этого добавляем в конфигурационный файл gtalk.conf следущее:
[general]
context=from-gtalk Контекст приема входящих звонков
bindaddr=local_ip Внутренний адрес сервера Asterisk
externip=external_ip Внеший «белый» адрес Asterisk
allowguest=yes Возможность приема звонков от людей, находящиеся вне списка GTalk
[guest] Параметры специального гостевого аккаунта
disallow=all Запрещаем все кодеки
allow=ulaw Разрешаем только ulaw
context=from-gtalk Указываем контекст обработки звонков
[account] В данном разделе указываем логин от Google аккаунта
username=ВАШ_АККАУНТ@gmail.com
disallow=all
allow=ulaw
context=from-gtalk
connection=gtalk_account Указывается коннекция из конфигурационного файла jabber.conf
2. После этого изменяем конфигурационный файл jabber.conf Asterisk:
[gtalk_account] Секция настройки аккаунта GTalk
type=client Тип соединения
serverhost=talk.google.com Сервер регистрации
username=ВАШ_АККАУНТ@gmail.com/Talk Учетная запись.
secret=ВАШ_ПАРОЛЬ Пароль
priority=1 Уровень приоритета ресурса
port=5222 Порт сервера, по умолчанию 5222
usetls=yes Использовать tls или нет
usesasl=yes Использовать sasl или нет
status=available Статус присутствия
statusmessage=«Only Voice» Сообщение статуса
3. Теперь настраиваем маршрутизацию прохождения звонка из GTalk в Lync. Для этого добавляем маршрут в конфигурационный файл extensions.conf Asterisk:
[from-gtalk]
exten => s,1,NoOP(Call from Gtalk)
exten => s,n,Set(CALLERID(name)=Google Talk)
exten => s,n,Dial(SIP/Lync_Trunk/3xx) 3хх – номер для группы вызова Lync.
4. Чтобы осуществлять исходящие вызовы на определенные аккаунты в GTalk, мы можем создать «виртуальный» номер в Asterisk. Для этого в файле extensions.conf Asterisk прописываем следующее:
exten => 3333,1,Dial(gtalk/gtalk_account/имя_вызываемого_пользователя@gmail.com)
На данный момент интеграция Asterisk со Skype платная. Для интеграции нам понадобится купить Skype Connect и онлайн-номер Skype.
1. Регистрируемся в Skype Manager и затем создаем профиль Skype Connect (https://manager.skype.com/features/sip). В настройках авторизации Вы увидите ваш SIP User и Password, а так же адрес подключения (sip.skype.com) и порт подключения (UDP 5060).
Теперь нужно купить онлайн-номер Skype. Он может выглядет следующим образом (+4420xxxxxxxx).
Эти данные мы добавляем в конфигурационный файл sip.conf Asterisk в раздел [general]:
register => 990xxxxx:9Jxxx@sip.skype.com/990xxxxxx
Добавляем новый раздел с именем SIP User:
[990xxxxx]
type = friend
dtmfmode = rfc2833
context = default
host = sip.skype.com
username = 990xxxxx
secret = 9Jxxx
disallow = all
allow = ulaw
allow = alaw
allow = g729
nat = yes
canreinvite = no
fromdomain = sip.skype.com
insecure = invite
После этого настраиваем правила обработки входящих звонков со Skype и исходящих звонков на международные номера через Skype. Для этого добавляем в конфигурационный файл extensions.conf Asterisk следующее:
exten => 4420xxxxxxxx,1,Answer
exten => 4420xxxxxxxx,n,Dial(SIP/Lync_Trunk/3xx) 3хх – номер для группы вызова Lync
Это позволит принимать вызов из Skype и переводить его на группу вызова Lync.
Так же можно закрепить за виртуальным номером в Asterisk (например, 2001) международный номер. Это позволит нам осуществлять звонки из Lync по телефону 2001 через Asterisk->Skype по всему миру. Для этого настраиваем правило обработки исходящих вызовов в Skype в этом же конфигурационном файле extensions.conf (для тестирования можно использовать бесплатный номер Skype +17606604590)
exten => 1001,1,Answer
exten => 1001,n,Set(CALLERID(num)= 990xxxxx)
exten => 1001,n,Dial(SIP/+17606604590@9990xxxxx)
exten => 1001,n,Hangup
• Chapter 11: Interoperability with Asterisk and Skype (доступно тут www.microsoft.com/download/en/details.aspx?displaylang=en&id=22644)
• Защита Asterisk или несколько способов как защититься от подбора пароля к SIP аккаунту (http://subnets.ru/blog/?p=1552 )
• Защита asterisk от взлома (http://www.mahno.su/freebsd/asterisk-freebsd/zashhita-asterisk-ot-vzloma )
Данная статья поможет Вам установить Asterisk, настроить совместную работу Asterisk-Skype, Asterisk-GTalk, а так же интегрировать Asterisk в существующую архитектуру Lync.
Часть первая. Установка Asterisk в CentOS 6.2
Для начала нам понадобится CentOS 6.2. Будем считать, что Вы уже установили CentOS 6.2 и произвели первоначальную настройку системы, поэтому приступим непосредственно к установке Asterisk:
- а) Первым шагом нам необходимо установить дополнительные компоненты в CentOS:
yum install wget kernel-devel gcc make gcc-c++ libxml2-devel perl ncurses-devel gnutls-devel curl-devel net-snmp-devel neon-devel
б) После этого скачиваем дистрибутивы iksemel, Asterisk и DAHDI:
wget downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.7.2.tar.gz
wget downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.5.0.2+2.5.0.2.tar.gz
wget iksemel.googlecode.com/files/iksemel-1.4.tar.gz
в) Распаковываем архивы в текущий каталог:
tar -xvzf asterisk-1.8* && tar -xvzf dahdi-linux-complete-* && tar -xvzf iksemel-*
г) Устанавливаем сначала iksemel:
cd iksemel-*
./configure --prefix=/usr --with-libgnutls-prefix=/usr --with-gnutls
make
make install
cd ..
д) Затем устанавливаем DAHDI:
cd dahdi-linux-complete*
make all
make install
make config
cd ..
е) После установки DAHDI, запускаем службу DAHDI и настраиваем ее автозапуск:
chkconfig dahdi on
service dahdi start - Теперь мы можем перейти к установке самого Asterisk.
cd asterisk-*
make clean
./configure
a) Устанавливаем разрешение терминала не менее 80 x 27
б) Запускаем режим конфигурирования:
make menuselect
в) Заходим в "Channel Drivers" и добавляем поддержку [*] chan_jingle, а также подключаем [*] res_jabber в "Resource Modules".
г) Сохраняем настройки и выходим из режима конфигурирования клавишей "x"
д) Завершаем установку:
make
make install
make samples
make config - Осталось настроить сам Asterisk
а) Запускаем консоль asterisk:
asterisk –vvvvc
б) Для настройки автозапуска Asterisk необходимо выполнить команды:
cp contrib/init.d/rc.redhat.asterisk /etc/rc.d/init.d/asterisk
chkconfig --add asterisk
в) После установки необходимо изменить конфигурационный файл sip.conf для усиления безопасности Asterisk и стабильной работы Asterisk с Lync:
[general]
context=default Используемый контекст для обработки входящих звонков
allowoverlap=no Деактивирован набор в режиме наложения
udpbindaddr=0.0.0.0 Указываем, что привязываем UDP-слушателя по всем IP адресам
bindport=5080 Используем порт 5080
bindaddr=0.0.0.0 Указываем, что привязываемся ко всем IP адресам
tcpenable=yes Включаем поддержку TCP (для поддержки Lync)
tcpbindaddr=0.0.0.0 Указываем, что привязываем TCP-слушателя по всем IP адресам
srvlookup=yes Включаем поддержку поиска DNS SRV
notifyhold = yes Включаем информацию подписчиков о звонке поставленном на удержание
alwaysauthreject = yes Asterisk при ошибках авторизации не будет сообщать подробности
localnet = 192.xxx.xxx.xxx/255.255.255.0 Указываем локальную подсеть
externip = 8.8.8.8 Указываем внешний IP-адрес, который будем использовать для Asterisk
Часть вторая. Интеграция asterisk и Lync 2010
Для стабильной работы ip-pbx Asterisk и Lync 2010 нам необходимо выполнить следующие действия:
1. В Lync 2010 Topology Builder добавить в PSTN gateways наш Asterisk, указав порт TCP 5060
2. После этого добавить роутинг звонков из Lync на внутренние номера Asterisk:
(В данном случае все звонки на внутренние номера [2,3]ххх из Lync будут переводиться в Asterisk. В примерах ниже мы будем использовать номера 2001, 2002).
3. Добавить в конфигурационный файл Asterisk sip.conf:
[Lync_Trunk] Имя транка для Линка
type=friend
port=5068 (Этот порт использует Lync сервер)
host=ххх.ххх.ххх.ххх IP-адрес нашего Lync сервера
dtmfmode=rfc2833
context=from-lync
qualify=yes
transport=tcp
4. В конфигурационный файл extensions.conf добавляем контекст from-lync для обслуживания звонков из Lync в Asterisk:
[from-lync]
exten=>_2XXX,1,Dial(SIP/${EXTEN})
exten =>_2XXX,2,playback(vm-nobodyavail)
exten =>_2XXX,3,playback(vm-goodbye)
exten=>_2XXX,n,hangup()
Теперь при звонке на добавочный номер Asterisk 2002 из Lync звонок переведется в Asterisk на внутренний номер.
Помимо этого, для осуществления звонков с внутренних номеров Asterisk на внутренние номера Lync нам необходимо в конфигурационный файл Asterisk extensions.conf добавить правила роутинга. Например, в контекст default добавляем:
exten=>_2XX,1,Dial(SIP/Lync_Trunk/${EXTEN})
exten=>_2XX,n,hangup()
exten=>_3XX,1,Dial(SIP/Lync_Trunk/${EXTEN})
exten=>_3XX,n,hangup()
Теперь мы сможем осуществлять звонки с номеров Asterisk 2ххх и 3ххх на внутренние номера абонентов Lync (в нашем примере 2хх и 3хх).
Часть третья. Настройка интеграции Asterisk-GTalk
Данная интеграция позволит принимать звонки из Gtalk в Asterisk на внутренний номер, на IVR Asterisk или на IVR Lync (в нашем примере мы покажем, как сделать так, чтобы входящий звонок из GTalk переводился в группу вызова Lync):
1. Для регистрации Asterisk в GTalk нам понадобится аккаунт в google. Создаем его. После этого добавляем в конфигурационный файл gtalk.conf следущее:
[general]
context=from-gtalk Контекст приема входящих звонков
bindaddr=local_ip Внутренний адрес сервера Asterisk
externip=external_ip Внеший «белый» адрес Asterisk
allowguest=yes Возможность приема звонков от людей, находящиеся вне списка GTalk
[guest] Параметры специального гостевого аккаунта
disallow=all Запрещаем все кодеки
allow=ulaw Разрешаем только ulaw
context=from-gtalk Указываем контекст обработки звонков
[account] В данном разделе указываем логин от Google аккаунта
username=ВАШ_АККАУНТ@gmail.com
disallow=all
allow=ulaw
context=from-gtalk
connection=gtalk_account Указывается коннекция из конфигурационного файла jabber.conf
2. После этого изменяем конфигурационный файл jabber.conf Asterisk:
[gtalk_account] Секция настройки аккаунта GTalk
type=client Тип соединения
serverhost=talk.google.com Сервер регистрации
username=ВАШ_АККАУНТ@gmail.com/Talk Учетная запись.
secret=ВАШ_ПАРОЛЬ Пароль
priority=1 Уровень приоритета ресурса
port=5222 Порт сервера, по умолчанию 5222
usetls=yes Использовать tls или нет
usesasl=yes Использовать sasl или нет
status=available Статус присутствия
statusmessage=«Only Voice» Сообщение статуса
3. Теперь настраиваем маршрутизацию прохождения звонка из GTalk в Lync. Для этого добавляем маршрут в конфигурационный файл extensions.conf Asterisk:
[from-gtalk]
exten => s,1,NoOP(Call from Gtalk)
exten => s,n,Set(CALLERID(name)=Google Talk)
exten => s,n,Dial(SIP/Lync_Trunk/3xx) 3хх – номер для группы вызова Lync.
4. Чтобы осуществлять исходящие вызовы на определенные аккаунты в GTalk, мы можем создать «виртуальный» номер в Asterisk. Для этого в файле extensions.conf Asterisk прописываем следующее:
exten => 3333,1,Dial(gtalk/gtalk_account/имя_вызываемого_пользователя@gmail.com)
Часть четвертая. Настройка интеграции Asterisk-Skype
На данный момент интеграция Asterisk со Skype платная. Для интеграции нам понадобится купить Skype Connect и онлайн-номер Skype.
1. Регистрируемся в Skype Manager и затем создаем профиль Skype Connect (https://manager.skype.com/features/sip). В настройках авторизации Вы увидите ваш SIP User и Password, а так же адрес подключения (sip.skype.com) и порт подключения (UDP 5060).
Теперь нужно купить онлайн-номер Skype. Он может выглядет следующим образом (+4420xxxxxxxx).
Эти данные мы добавляем в конфигурационный файл sip.conf Asterisk в раздел [general]:
register => 990xxxxx:9Jxxx@sip.skype.com/990xxxxxx
Добавляем новый раздел с именем SIP User:
[990xxxxx]
type = friend
dtmfmode = rfc2833
context = default
host = sip.skype.com
username = 990xxxxx
secret = 9Jxxx
disallow = all
allow = ulaw
allow = alaw
allow = g729
nat = yes
canreinvite = no
fromdomain = sip.skype.com
insecure = invite
После этого настраиваем правила обработки входящих звонков со Skype и исходящих звонков на международные номера через Skype. Для этого добавляем в конфигурационный файл extensions.conf Asterisk следующее:
exten => 4420xxxxxxxx,1,Answer
exten => 4420xxxxxxxx,n,Dial(SIP/Lync_Trunk/3xx) 3хх – номер для группы вызова Lync
Это позволит принимать вызов из Skype и переводить его на группу вызова Lync.
Так же можно закрепить за виртуальным номером в Asterisk (например, 2001) международный номер. Это позволит нам осуществлять звонки из Lync по телефону 2001 через Asterisk->Skype по всему миру. Для этого настраиваем правило обработки исходящих вызовов в Skype в этом же конфигурационном файле extensions.conf (для тестирования можно использовать бесплатный номер Skype +17606604590)
exten => 1001,1,Answer
exten => 1001,n,Set(CALLERID(num)= 990xxxxx)
exten => 1001,n,Dial(SIP/+17606604590@9990xxxxx)
exten => 1001,n,Hangup
Надеемся, что наша статья смогла Вам помочь!
В статье мы использовали следующие материалы:
• Chapter 11: Interoperability with Asterisk and Skype (доступно тут www.microsoft.com/download/en/details.aspx?displaylang=en&id=22644)
• Защита Asterisk или несколько способов как защититься от подбора пароля к SIP аккаунту (http://subnets.ru/blog/?p=1552 )
• Защита asterisk от взлома (http://www.mahno.su/freebsd/asterisk-freebsd/zashhita-asterisk-ot-vzloma )