Francyz
@Francyz
Photographer & SysAdmin

Asterisk и Ростелеком, как побороть исходящие (регистрация sip)?

Коллеги, есть номер от Ростелекома (далее будет еще парочка, но тестирую с одним). Предоставили логин и пароль. Я создал контекст с нужными данными:
[authentication]

[r_213162]
type=friend
host=10.10.10.100
port=5060
nat=no
fromdomain=10.10.10.100
insecure=invite,port
disallow=all
allow=alaw
allow=ulaw
dtmfmode=auto
secret=******
defaultuser=213162
fromuser=213162
callbackextension=213162
context=incoming
qualify=300
directmedia=no


Диалплан тоже не замысловатый:
[general]
static=yes
writeprotect=no

[globals]

[default]
;Pick phone
[handup-sip]
exten => _X!,1,HangUp()

;Dial plan "Outcoling"
[outcoling]
exten => 900,1,Answer()
exten => 900,n,ConfBridge(1,confer)
exten => _XXX,1,Dial(SIP/${EXTEN},15,t)
exten => _XXX.,1,Dial(SIP/${EXTEN}@r_213162)
include => handup-sip

;Dial plan "Incoming"
[incoming]
exten => 213162,1,Dial(SIP/105)


Но регистрировать sip не хочет все время пишется ошибка:
[Feb 19 09:13:02] WARNING[2355]: chan_sip.c:15937 transmit_register: Probably a DNS error for registration to 213162@10.10.10.100, trying REGISTER again (after 20 seconds)
[Feb 19 09:13:22] WARNING[2355]: chan_sip.c:15937 transmit_register: Probably a DNS error for registration to 213162@10.10.10.100, trying REGISTER again (after 20 seconds)
[Feb 19 09:13:22] NOTICE[2355]: chan_sip.c:15766 sip_reg_timeout:    -- Registration for '213162@10.10.10.100' timed out, trying again (Attempt #2)


А если попробовать звонить исходящий то при asterisk -rvvvv в логах следующее:
Connected to Asterisk 13.14.0 currently running on voip (pid = 1541)
  == Using SIP RTP CoS mark 5
    -- Executing [8*******8@outcoling:1] Dial("SIP/105-0000000a", "SIP/8*******8@r_213162") in new stack
[Feb 19 09:11:06] WARNING[17606][C-00000005]: app_dial.c:2525 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/105-0000000a' status is 'CHANUNAVAIL'


В инете у кого подобная ошибка все говорят из-за "callbackextension", мне не понятно причем тут ДНС у меня, когда я все адреса вбил айпишниками. Тут даже разыминовывать нечего.

UPD #01:
Заменил в sip.conf тип Friend на Peer, вот что в итоге:
externaddr = 10.*******
;local network
localnet = 192.168.50.0/24
localnet = 10.10.0.0/16
localnet = 10.9.0.0/16
;RU sound
language=ru
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
allowguest=no
limitonpeers=yes
alwaysauthreject=yes

defaultexpiry=300
minexpiry=300
maxexpiry=3600

[authentication]

[r_213162]
type=peer
host=10.10.10.100
nat=no
insecure=invite,port
disallow=all
allow=alaw
allow=ulaw
dtmfmode=auto
secret=********
defaultuser=213162
trunkname=213162
fromuser=213162
callbackextension=213162
context=incoming
directmedia=nonat


Ошибка с DNS исчезла, НО ногда звоню с внешки дозваниваюсь нормально, но в трубках тишина. А если пытаюсь звонить на внешку, то звонок идет гудки есть но на сотовый звонок не приходит, как будто звонок в никуда.

Это в логе, когда звоню с внешки на внутреннюю и тишина в трубке:
== Using SIP RTP CoS mark 5
    -- Executing [213162@incoming:1] Dial("SIP/r_213162-00000000", "SIP/105") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/105
    -- SIP/105-00000001 is ringing
    -- SIP/105-00000001 answered SIP/r_213162-00000000
    -- Channel SIP/105-00000001 joined 'simple_bridge' basic-bridge <f5c11c0d-fee9-41d1-a023-ccf65b70bd3f>
    -- Channel SIP/r_213162-00000000 joined 'simple_bridge' basic-bridge <f5c11c0d-fee9-41d1-a023-ccf65b70bd3f>
       > Bridge f5c11c0d-fee9-41d1-a023-ccf65b70bd3f: switching from simple_bridge technology to native_rtp
       > Remotely bridged 'SIP/r_213162-00000000' and 'SIP/105-00000001' - media will flow directly between them
       > Remotely bridged 'SIP/r_213162-00000000' and 'SIP/105-00000001' - media will flow directly between them
       > 0x7f54c8005b10 -- Probation passed - setting RTP source address to 192.168.50.13:12134
       > 0x7f5400010dc0 -- Probation passed - setting RTP source address to 10.*******:19140
    -- Channel SIP/105-00000001 left 'native_rtp' basic-bridge <f5c11c0d-fee9-41d1-a023-ccf65b70bd3f>
    -- Channel SIP/r_213162-00000000 left 'native_rtp' basic-bridge <f5c11c0d-fee9-41d1-a023-ccf65b70bd3f>
  == Spawn extension (incoming, 213162, 1) exited non-zero on 'SIP/r_213162-00000000'


А это когда звонок уходит в никуда при звонке на сотовый
== Using SIP RTP CoS mark 5
    -- Executing [8*****8@outcoling:1] Dial("SIP/105-00000002", "SIP/8******8@r_213162") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/@r_213162
       > 0x7f54d00059e0 -- Probation passed - setting RTP source address to 10.********:15972
    -- SIP/r_213162-00000003 is making progress passing it to SIP/105-00000002
       > 0x7f54d00059e0 -- Probation passed - setting RTP source address to 10.********:15972
       > 0x7f5400010dc0 -- Probation passed - setting RTP source address to 192.168.50.13:12138
    -- SIP/r_213162-00000003 is ringing
  == Spawn extension (outcoling, 8*****8, 1) exited non-zero on 'SIP/105-00000002'
  • Вопрос задан
  • 8902 просмотра
Решения вопроса 1
Судя по конфигу, у вас астериск за NAT. Тогда на внешних транках должно быть:
nat = force_rport,comedia

Во вторых, что-то непонятное у вас в транке творится. По какой причине там указан такой host? Там должен быть ip или хостнейм ростелекома
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@silverjoe
А почему у вас в localnet прописана сеть в которую входит адрес оператора связи????
Вы таким образом сбиваете с толку ваш Астериск, он будет думать что оператор связи в локальной сети, а не во внешней.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы