Страница 1 из 3

Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 13:34
alekssaff
Добрый день комьюнити ))

Собственно имеется следующее:
- asterisk 11 (FreePBX12)
- 5 IP транков на Ростелеком

Соединение следующим образом:

Код: Выделить всё

                                                asterisk
                                         _______________________
localnet + inet (192.168.0.0/24) ------>|192.168.1.100          |
                                        |                       |
rostelecom pppoe (10.10.10.100) ------->|10.9.46.217            |
                                        |_______________________|
Регистрации поднимаются, и даже чудо общения на расстоянии и двусторонняя слышимость присутствуют. НО спустя ровно 152 секунды Ростелеком разрывает соединение со своей стороны. В пакетах инвайтов и прочей требухи везде IP адрес указан правильно (10.9.46.217), кроме одного маленького пакетика (SIP/SDP) и одного маленького поля OWNER ( o= )
Вот этот пакет:

Код: Выделить всё

SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.10.10.100:5061;rport=5061;received=10.10.10.100;branch=z9hG4bKebdaa33da
Call-ID: fde4916483dfdb60a03c2556bdcdab76@10.10.10.100
From: "Anonymous" <sip:Anonymous@10.10.10.100>;tag=4df267be
To: <sip:ЮЗЕРНЭЙМ@10.9.46.217;user=phone>;tag=bde3347d-678b-41ae-9200-213e21d5ff8e
CSeq: 1 INVITE
Server: FPBX-12.0.9(12.7.0)
Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER, MESSAGE, REFER
Contact: <sip:10.9.46.217:5161>
Supported: 100rel, timer, replaces, norefersub
Content-Type: application/sdp
Content-Length:   230
v=0
o=- 49238583 49238585 IN IP4 192.168.1.100                <--------------------- Вот ОНО!
s=Asterisk
c=IN IP4 10.9.46.217
t=0 0
m=audio 10442 RTP/AVP 8 97
a=rtpmap:8 PCMA/8000
a=rtpmap:97 telephone-event/8000
a=fmtp:97 0-16
a=ptime:20
a=maxptime:150
a=sendrecv
Что характерно - разрыв происходит независимо от направления вызова и разрывается со стороны Ростелекома (то есть на сотовом канал обрубается, а астериск продолжает общаться пакетами РТП с сервером РТК).

Тех поддержка Ростелекома говорит что все из за этого пакетика (что ИМХО бред, поправьте если не прав) и соответственно "Настраивайте свое оборудование".

Уточню, что при прочих равных условиях (только без использования канала РТК) провайдеры МТТ, Телфин и прочие сказочные персонажи работают безукоризненно.

Уважаемое комьюнити и старшие его представители. Видывали ли вы сие чудо где либо еще? Знаете ли как побороть сий недуг?

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 13:37
Vlad1983

Код: Выделить всё

localnet=192.168.0.0/24
localnet=10.9.46.0/24
localnet=10.10.10.100/32

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 17:21
alekssaff
Влад, спасибо за отклик. Добавил, результат тот же. Скрин настроек во вложении:

localnet=10.10.0.0/255.255.0.0
localnet=10.9.0.0/255.255.0.0
localnet=192.168.1.0/255.255.255.0

Так же обрывает РТК, а голос еще какое-то время идет на их сервер.

Помимо безвозмездной помощи комьюнити рассматривается так же и коммерческий вариант (за контактной информацией в личку) решения проблемы, с дальнейшим описанием в данной теме сути решения.

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 17:54
Zavr2008
pppoe делается на самом астере или есть роутик?

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 17:57
alekssaff
pppoe поднимается на астериске. На нем 2 сетевых. Один в локалку и интернет через ADSL модем, второй шнурок в логово РТК. Так вот по второму шнурку сервачек с астериском поднимает pppoe.
В итоге интерфейс ppp0 смотрит в логово змия.

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 18:09
Zavr2008
От этого и проблема походу. Нет денег на микротик? :)

Бага в астере, гуглите по поводу проблем на multihomed systems и обрубание звонков.

Попробуйте всю эту сетевую хрень вынести за Астер, чтобы там ничего не щелкало.

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 19:06
Vlad1983
так что там в сигналке теперь?
и выхлоп
ip ro

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 19:22
alekssaff
Zavr2008 писал(а):От этого и проблема походу. Нет денег на микротик? :)

Бага в астере, гуглите по поводу проблем на multihomed systems и обрубание звонков.

Попробуйте всю эту сетевую хрень вынести за Астер, чтобы там ничего не щелкало.
Микротик поставить - не проблема. Но в этом ли решение? То есть если я избавлюсь от интерфейса ppp0 и получу eth1 изменится ли картина мира? Или может это баг pjsip?
К сожалению физический доступ к серверу будет только на следующей неделе (в другом городе стоит), попробую завести православный эзернет.

Я просто не понимаю, почему в это поле подставляется адрес с другого интерфейса, хотя в спецификации написано:
o=<username> <sess-id> <sess-version> <nettype> <addrtype>
<unicast-address>
The "o=" field gives the originator of the session (her username and
the address of the user's host) plus a session identifier and version
number:
<snip>
<addrtype> is a text string giving the type of the address that
follows. Initially "IP4" and "IP6" are defined, but other values
MAY be registered in the future (see Section 8).
<unicast-address> is the address of the machine from which the
session was created. For an address type of IP4, this is either
the fully qualified domain name of the machine or the dotted-
decimal representation of the IP version 4 address of the machine.
For an address type of IP6, this is either the fully qualified
domain name of the machine or the compressed textual
representation of the IP version 6 address of the machine. For
both IP4 and IP6, the fully qualified domain name is the form that
SHOULD be given unless this is unavailable, in which case the
globally unique address MAY be substituted. A local IP address
MUST NOT be used in any context where the SDP description might
leave the scope in which the address is meaningful
(for example, a
local address MUST NOT be included in an application-level
referral that might leave the scope).

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 19:31
alekssaff
Vlad1983 писал(а):так что там в сигналке теперь?
и выхлоп
ip ro
В сигналке все то же

Код: Выделить всё

Via: SIP/2.0/UDP 10.10.10.100:5061;rport=5061;received=10.10.10.100;branch=z9hG4bKdde6e4bf5
Call-ID: ac3237bb81c427671e822420aad6f00d@10.10.10.100
From: "Anonymous" <sip:Anonymous@10.10.10.100>;tag=20dccb6e
To: <sip:477022@10.9.46.217;user=phone>;tag=c2d2f99b-eb69-4ace-bd98-559166aaf6db
CSeq: 1 INVITE
Server: FPBX-12.0.9(12.7.0)
Contact: <sip:10.9.46.217:5161>
Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER, MESSAGE, REFER
Supported: 100rel, timer, replaces, norefersub
Content-Type: application/sdp
Content-Length:   224


v=0
o=- 15416 15418 IN IP4 192.168.1.100
s=Asterisk
c=IN IP4 10.9.46.217
t=0 0
m=audio 11572 RTP/AVP 8 97
a=rtpmap:8 PCMA/8000
a=rtpmap:97 telephone-event/8000
a=fmtp:97 0-16
a=ptime:20
a=maxptime:150
a=sendrecv
И звонок так же обрывается через 152 секунды.

ip route

Код: Выделить всё

default via 192.168.1.1 dev eth0  proto static 
10.9.0.0/16 dev ppp0  scope link 
10.10.0.0/16 dev ppp0  scope link 
10.10.10.8 dev ppp0  proto kernel  scope link  src 10.9.46.217 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.100  metric 1 

Re: Asterisk + Ростелеком Ростов = Магический таймаут

Добавлено: 03 дек 2014, 19:52
ded
In My Humble Opinion - нужно добавить строку в роутинг
10.10.10.100 dev ppp0 proto kernel scope link src 10.9.46.217
или даже шире:
10.10.0.0/16 dev ppp0 proto kernel scope link src 10.9.46.217