Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Связка двух и более серверов Asterisk для звонков по SIP

Проблемы и их решения Asterisk как такового

Модератор: april22

Связка двух и более серверов Asterisk для звонков по SIP

Сообщение ligo » 14 фев 2020, 16:43

Добрый день, господа, сейчас Вы можете лицезреть мое первое сообщение на этом форуме. Мне нужны советы от Вас, как от более опытных пользователей Asterisk(слышал я что здесь обитает некий всезнающий "ded").
Ситуация следующая, у меня есть два сервера Астериск, оба подняты на виртуальной машине, один из них Asterisk 16 на Ubuntu 18, второй - Asterisk 13 на Centos 8. Хочу связать эти два сервера между собой, чтобы совершать внутренние звонки по протоколу SIP.
В качестве примера я использовал диалплан и сип.конф из книги "Астериск-телефония будущего", подставив лишь свои пароли...
1) сип.конф для Торонто:
Код: выделить все

[general]
register => toronto:password1@192.168.88.1XX/osaka

[osaka]
type=friend
secret=password2
context=osaka_incoming
host=dynamic
disallow=all
allow=ulaw

[1000]
type=friend
host=dynamic
context=phones


2) сип.конф для Осака:
Код: выделить все

[general]
register => osaka:password2@192.168.88.2XX/toronto

[toronto]
type=friend
secret=password1
context=toronto_incoming
host=dynamic
disallow=all
allow=ulaw

[1001]
type=friend
host=dynamic
context=phones


3) экстеншн.конф для Торонто:
Код: выделить все
[globals]

[general]
autofallthrough=yes

[default]

[incoming_calls]

[phones]
include => internal
include => remote

[internal]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/${EXTEN},30)
exten => _2XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _2XXX,n,Hangup()

[remote]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/osaka/${EXTEN})
exten => _1XXX,n,Hangup()

[osaka_incoming]
include => internal


4) Экстеншн.конф для Осака:
Код: выделить все
[globals]

[general]
autofallthrough=yes

[default]

[incoming_calls]

[phones]
include => internal
include => remote

[internal]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/${EXTEN},30)
exten => _1XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _1XXX,n,Hangup()

[remote]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/toronto/${EXTEN})
exten => _2XXX,n,Hangup()

[toronto_incoming]
include => internal

при вводе команды "sip show registry" выводится в терминале что всё гуд, идентично тому как описано это в книге! Прилагаю сообщение из терминала
(сервер Торонто):
Код: выделить все
192.168.88.1XX:5060                     N      toronto            105 Registered           Fri, 14 Feb 2020 14:16:02
1 SIP registrations.

и, соответственно (сервер Осака):
Код: выделить все
192.168.88.2XX:5060                     N      osaka              105 Registered           Fri, 14 Feb 2020 14:16:12
1 SIP registrations.

Номера в софтфоне регистрируются успешно и казало бы что осталось дело за малым, однако при попытке вызова постоянно появляется ошибки либо предупреждение:
1) при вызове с 1001 на 1000:
Код: выделить все
Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)


2) при вызове с 1000 на 1001:
Код: выделить все
chan_sip.c:24305 handle_response_invite: Received response: "Forbidden" from '"1000" <sip:1000@192.168.88.230>;tag=as0a4d9bd2'.


В итоге, вызов не проходит абсолютно. Прошу Вас, помогите разобраться что не так. Заранее спасибо
ligo
 
Сообщений: 2
Зарегистрирован: 18 дек 2019, 17:32

Re: Связка двух и более серверов Asterisk для звонков по SIP

Сообщение virus_net » 15 фев 2020, 10:24

Тут даже ded не нужен, чтобы разобраться.
Нужна внимательность.

Подсказка: Посмотрите какие номера какой сервер считает INTERNAL, а какие remote согласно вашим конфигам. Затем подумайте, какой софтфон и где вы регистрируете и откуда куда вы набираете.

P. S. Выкладывая конфиг и или логи следует использовать форумные теги, такие как тег code.
P. S. S. Прятать внутренние адреса, тем более только последний октет, тем более не везде, за XXX бессмысленно, это внутренние адреса.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2308
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Связка двух и более серверов Asterisk для звонков по SIP

Сообщение Zavr2008 » 15 фев 2020, 16:15

2 астера говорите..
Самое простое - просто транк без решистрации.
у пира прописываете
Код: выделить все
host=<статический ip>
insecure=port,invite
directmedia=no


А что там с NAT - это всё будет внутри гулять по серым?

По маске сети 192.168.88.x/24 вангую что микротик, отключаем там SIP ALG. http://wiki.otx.ru/wiki/Mikrotik_SIP_ALG_Disable

По диалпланам - у каждого сервера свои внутренние пиры (ip-телефоны), важно чтобы они между серверами не повторялись. Форбидден обычно от этого.
Чтобы этого не было, добавляйте каждому офису свой префикс или же делайте свои диапазоны экстенов.
Asterisk-совместимые SIP/E1 шлюзы Alvis. Форумчанам - скидки, Asterisk/FreePBX + TDA/TDE/LDK/Avaya/HiPath/NEC и др. + Bitrix24/AmoCRM!
Аватар пользователя
Zavr2008
 
Сообщений: 1524
Зарегистрирован: 27 янв 2011, 01:35

Re: Связка двух и более серверов Asterisk для звонков по SIP

Сообщение ded » 15 фев 2020, 18:07

ligo писал(а):Добрый день, господа, сейчас Вы можете лицезреть мое первое сообщение на этом форуме.
всем квасу и семак! Предвкушаем!
ligo писал(а):Мне нужны советы от Вас, как от более опытных пользователей Asterisk(слышал я что здесь обитает некий всезнающий "ded").
Я вся дрожу, это мой первый секс с Астериском!
Может спросить Muller7777?

ligo писал(а):Ситуация следующая, у меня есть два сервера Астериск, оба подняты на виртуальной машине,
наверное - на виртуальнЫХ машинАХ? А не на одной?
У вас оба пира (наверное всё же Лисичанск и Старобельск, а не Осака и Торонто) знают друг о друге как о неизвестном ИП адресе -
host=dynamic
То есть астероид с неизвестными ИП координатами и планета Нибиру. Строка регистрации не имеет отношения к описанию пира.
Знатно задумано!
Для соединения Астерисков был специально придуман протокол Inter-Asterisk exchange - IAX2, чтобы избавиться от наследования аутентификации SIP юзеров при звонках между ними. Форбидден обычно от этого.
Откройте учебник и настройте два IAX пира, со статическими адресами, друг в друга, без регистрации и секретов.
host=192.168.88.100
host=192.168.88.200
Ибо source IP каждого сервера достаточный идентификатор для аутентификации.
Zavr2008 писал(а):По маске сети 192.168.88.x/24 вангую что микротик, отключаем там SIP ALG.
При чём тут SIP ALG? Оба хоста 192.168.88.100 и 192.168.88.200 в одной подсети 192.168.88.0/24, Микротик не проходят.
ded
 
Сообщений: 14304
Зарегистрирован: 26 авг 2010, 19:00

Re: Связка двух и более серверов Asterisk для звонков по SIP

Сообщение Zavr2008 » 17 фев 2020, 12:49

При том что влияет и не ясно в одной или нет будут.
Asterisk-совместимые SIP/E1 шлюзы Alvis. Форумчанам - скидки, Asterisk/FreePBX + TDA/TDE/LDK/Avaya/HiPath/NEC и др. + Bitrix24/AmoCRM!
Аватар пользователя
Zavr2008
 
Сообщений: 1524
Зарегистрирован: 27 янв 2011, 01:35

Re: Связка двух и более серверов Asterisk для звонков по SIP

Сообщение ded » 17 фев 2020, 15:35

Zavr2008, сообщение
Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
говорит о том, что нет SIP пира при звонке
exten => _1XXX,n,Dial(SIP/osaka/${EXTEN})

То есть вот этот пир не существует, нет его ИП адреса, с точки зрения сервера Toronto:
Код: выделить все
[osaka]
type=friend
secret=password2
context=osaka_incoming
host=dynamic
disallow=all
allow=ulaw
и это видно при
CLI> sip show peers

Уважаемый ТС! Наблюдаю процесс изучения Астериск по книге "Будущее телефонии". Ничего необычного в вашем случае нет, но есть попытка вовлечь в процесс обучения сообщество, типа - "помогите разобраться, я первый раз, многое не понимаю..." это неверный подход, об этом написано в условиях регистрации на форуме.
ded
 
Сообщений: 14304
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: ded и гости: 8

© 2008 — 2020 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH