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

Связь между филиалами с помощью IAX2

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

StasStryukov
Сообщения: 27
Зарегистрирован: 20 июл 2012, 09:59

Связь между филиалами с помощью IAX2

Сообщение StasStryukov »

Здравствуйте, уважаемые.
Решил я значит настроить межфилиальную связь посредством астериск через iax2. Прописал конфиги обоих серверов как в книжке. Захожу в sli астериска: на первом сервере после ввода iax2 show peers ошибка :
Name/Username Host Mask Port Status
disel (null) (D) 255.255.255.255 0 (T) UNKNOWN

Однако второй сервер видит первый, там всё ок. При наборе с первого сервера внутренний номер второго в sli ошибки следующего плана:
Verbosity is at least 3
== Using SIP RTP CoS mark 5
-- Executing [42@con1:1] Dial("SIP/20-00000001", "IAX2/xxx/42") in new stack
[Jul 19 18:54:19] WARNING[22050]: app_dial.c:2218 dial_exec_full: Unable to create channel of type 'IAX2' (cause 20 - Unknown)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [42@con1:2] Hangup("SIP/20-00000001", "") in new stack
== Spawn extension (con1, 42, 2) exited non-zero on 'SIP/20-00000001'

Оба сервера находятся за прокси сервером: проброс порта (точнее трансляция) 4569 сделан. В общем конфиги iax
Первый (неработающий сервер)

[general]
bindport=4569
bindaddr=192.168.1.4
autokill=yes
register => xxx:xxx@xxx.xxx.org

[xxx]
requirecalltoken=no
type=friend
host=dynamic
trunk=yes
qualify=yes
nat=yes
secret=xxxx
context=incoming_xxx
allow=g729

Конфиг второго
[general]
bindport=4569
bindaddr=192.168.2.1
autokill=yes
register => xxx:xxx@xxx.xxx.org

[xxx]
requirecalltoken=no
type=friend
host=dynamic
trunk=yes
nat=yes
secret=xxx
qualify=yes
context=incoming_xxx
allow = g729

Если несложно, хелп ми)))
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: Связь между филиалами с помощью IAX2

Сообщение Samael28 »

Маршруты сетевые прописаны корректно? NAT есть?
Мой профайл на Upwork
StasStryukov
Сообщения: 27
Зарегистрирован: 20 июл 2012, 09:59

Re: Связь между филиалами с помощью IAX2

Сообщение StasStryukov »

да второй сервер находится за usergate. Именно с ним и проблемы. В статусе первого сервера он находится offline. Проброс порта сделан в usergate, в статистике usergate соединение активно, т.е. проброс идет.
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: Связь между филиалами с помощью IAX2

Сообщение Aven »

IAX не нужен.
Решения телефонии на базе Asterisk || http://it-need.ru
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Связь между филиалами с помощью IAX2

Сообщение ded »

Изображение
Если все ключевые моменты обозначать крестиками - ххх то объяснить сложно, а понять ещё сложнее.
Согласно
disel (null) (D) 255.255.255.255 0 (T) UNKNOWN - второй сервер видно что не зарегистрировался.
второй сервер - динамический относительно первого. Значит ему регистрироваться надо, как указано на втором - register => xxx:xxx@xxx.xxx.org
Только я заменю на конкретику:
Server name DIESEL has dynamic IP address 192.168.0.0/16
Server BENSO has static address 10.1.2.3

Регистрируем DIESEL на BENSO
register => disel:dieselpassword@10.1.2.3

А BENSO нигде не надо регистрировать.

У сервера BENSO
[disel]
requirecalltoken=no
type=friend
host=dynamic
trunk=yes
;nat=yes - это не надо
username=diselcalltoyou
secret=dieselpassword
qualify=yes
context=incoming_diesel

Сам сервер BENSO ниг де регистрировать не надо.
Если оба сервера находятся за прокси сервером, то это плохо. BENSO Должен быть доступен на статическом адресе, надеюсь проброс 4569 поможет.
Мониторить попытки регистрации на сервере BENSO
tcpdump port 4569
Ну и затем дебаг IAX2 на нём не помешает включить и смотреть.
StasStryukov
Сообщения: 27
Зарегистрирован: 20 июл 2012, 09:59

Re: Связь между филиалами с помощью IAX2

Сообщение StasStryukov »

Дэбаг сервака (agroplus), который не может связаться с disel. На disel тишина.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: REGACK
Timestamp: 00340ms SCall: 08695 DCall: 00122 [46.159.208.243:4569]
USERNAME : agroplus
DATE TIME : 2012-07-20 10:28:38
REFRESH : 60
APPARENT ADDRES : IPV4 83.221.3.42:60770

Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: ACK
Timestamp: 00340ms SCall: 00122 DCall: 08695 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: POKE
Timestamp: 00004ms SCall: 13526 DCall: 00000 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00004ms SCall: 13526 DCall: 00001 [46.159.208.243:4569]
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00018ms SCall: 05925 DCall: 00000 [46.159.208.243:4569]
USERNAME : agroplus
REFRESH : 60

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGAUTH
Timestamp: 00001ms SCall: 10664 DCall: 05925 [46.159.208.243:4569]
AUTHMETHODS : 3
CHALLENGE : \x38\x31\x34\x38\x37\x30\x38\x35\x39
USERNAME : agroplus

Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: REGREQ
Timestamp: 00121ms SCall: 05925 DCall: 10664 [46.159.208.243:4569]
USERNAME : agroplus
REFRESH : 60
MD5 RESULT : 5809b536b4564cdea91b1dab2f2a7197

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: REGACK
Timestamp: 00104ms SCall: 10664 DCall: 05925 [46.159.208.243:4569]
USERNAME : agroplus
DATE TIME : 2012-07-20 10:29:28
REFRESH : 60
APPARENT ADDRES : IPV4 83.221.3.42:60770

Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: ACK
Timestamp: 00104ms SCall: 05925 DCall: 10664 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: POKE
Timestamp: 00018ms SCall: 07413 DCall: 00000 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: POKE
Timestamp: 00018ms SCall: 10402 DCall: 00000 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: INVAL
Timestamp: 00000ms SCall: 07413 DCall: 00001 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00018ms SCall: 10402 DCall: 00001 [46.159.208.243:4569]
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00012ms SCall: 03405 DCall: 00000 [46.159.208.243:4569]
USERNAME : agroplus
REFRESH : 60

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGAUTH
Timestamp: 00014ms SCall: 00077 DCall: 03405 [46.159.208.243:4569]
AUTHMETHODS : 3
CHALLENGE : \x31\x36\x33\x34\x31\x38\x36\x32\x32
USERNAME : agroplus

Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: REGREQ
Timestamp: 00114ms SCall: 03405 DCall: 00077 [46.159.208.243:4569]
USERNAME : agroplus
REFRESH : 60
MD5 RESULT : f87a616e71122425cd37a740c7b0bc1d

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: REGACK
Timestamp: 00115ms SCall: 00077 DCall: 03405 [46.159.208.243:4569]
USERNAME : agroplus
DATE TIME : 2012-07-20 10:30:18
REFRESH : 60
APPARENT ADDRES : IPV4 83.221.3.42:60770

Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: ACK
Timestamp: 00115ms SCall: 03405 DCall: 00077 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: POKE
Timestamp: 00003ms SCall: 15683 DCall: 00000 [46.159.208.243:4569]
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00003ms SCall: 15683 DCall: 00001 [46.159.208.243:4569]
Первый сервер (agroplus) - ничего не поменялось
Name/Username Host Mask Port Status
disel (null) (D) 255.255.255.255 0 (T) UNKNOWN

Второй сервер (disel) - как и было, всё нормально
Name/Username Host Mask Port Status
agroplus IP-адрес (D) 255.255.255.255 60770(T) OK (103 ms)


Подправил конфиги iax:
Первый сервер (агроплюс)

[general]
bindport=4569
bindaddr=192.168.1.4
autokill=yes
register => agroplus:secret_pass@ip-адрес_второго_сервера.org

[disel]
requirecalltoken=no
type=friend
host=dynamic
trunk=yes
qualify=yes
secret=pass
context=incoming_disel


Второй сервер (disel)
[general]
bindport=4569
bindaddr=192.168.2.1
autokill=yes

[agroplus]
requirecalltoken=no
type=friend
host=dynamic
trunk=yes
secret=secret_pass
qualify=yes
context=incoming_agroplus
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Связь между филиалами с помощью IAX2

Сообщение ded »

Первый сервер (agroplus) - ничего не поменялось
Name/Username Host Mask Port Status
disel (null) (D) 255.255.255.255 0 (T) UNKNOWN
Сервер не зарегистрирован, его нет.
Дампить порт 4569 - смотреть - есть от него пакеты регистрации?

И, уважаемый, зачем Вы спрашиваете советы если ими не пользуетесь? Сквзано - не нужно первому регистрироваться нигде, однако
Первый сервер (агроплюс)

[general]
bindport=4569
bindaddr=192.168.1.4
autokill=yes
; register => agroplus:secret_pass@ip-адрес_второго_сервера.org - не нужно этого!

[disel]
requirecalltoken=no
type=friend
host=dynamic
trunk=yes
qualify=yes
secret=pass_disel
context=incoming_disel

А второму как раз надо регистрироваться на первом
register => disel:pass_disel@внешний_ИП_адрес_сервера_agroplus
StasStryukov
Сообщения: 27
Зарегистрирован: 20 июл 2012, 09:59

Re: Связь между филиалами с помощью IAX2

Сообщение StasStryukov »

Дамп disel :
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
tcpdump port 4569
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:05:53.233307 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 12
11:05:53.333939 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 12
11:05:53.335522 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 12
11:06:23.545228 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 28
11:06:23.546928 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 37
11:06:23.649323 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 62
11:06:23.649431 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 50
11:06:23.751294 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 12
11:06:53.334897 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 12
11:06:53.434928 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 12
11:06:53.435432 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 12
11:07:13.750996 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 28
11:07:13.751612 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 37
11:07:13.855154 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 62
11:07:13.855249 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 50
11:07:13.956910 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 12
На агроплюс тишина...
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Связь между филиалами с помощью IAX2

Сообщение ded »

В диалоге
11:06:53.334897 IP buh1.local.iax > mpool3-42.tsrv.ru.63116: UDP, length 12
11:06:53.434928 IP mpool3-42.tsrv.ru.63116 > buh1.local.iax: UDP, length 12
как можно понять где disel а где agroplus? Телепаты в отпуске.
Дампы исследовать - самому, как анализ мочи и кала. Бесплатных амбулаторий и лабораторий по исследованию мочи и кала в мед. учреждениях нет.
В платный суппорт.
StasStryukov
Сообщения: 27
Зарегистрирован: 20 июл 2012, 09:59

Re: Связь между филиалами с помощью IAX2

Сообщение StasStryukov »

ded писал(а):
И, уважаемый, зачем Вы спрашиваете советы если ими не пользуетесь? Сквзано - не нужно первому регистрироваться нигде, однако
Первый сервер (агроплюс)

[general]
bindport=4569
bindaddr=192.168.1.4
autokill=yes
; register => agroplus:secret_pass@ip-адрес_второго_сервера.org - не нужно этого!

[disel]
requirecalltoken=no
type=friend
host=dynamic
trunk=yes
qualify=yes
secret=pass_disel
context=incoming_disel

А второму как раз надо регистрироваться на первом
register => disel:pass_disel@внешний_ИП_адрес_сервера_agroplus
Просто от этих конфигов уже голова кругом идет. Запутался. И да, сделал как надо, теперь вообще ни один сервер не видит друг друга :D Ох, как же все это сложно...
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH