Входящие звонки не проходят Asterisk

У меня Asterisk 11.7.0 настроен на CentOS 6.4 x64 со следующими sip.conf конфигурация:

[general]
register =>mynumber:mypass@xxx.xxx.xxx.xxx
registertimeout=20
context=incoming
allowoverlap=no
bindport=5060
bindaddr=192.168.0.3
srvlookup=no
subscribecontext=from-sip

; The SIP provider
[VoIPProvider]
canreinvite=no
username=mynumber
fromuser=mynumber
secret=mypass
context=incoming
type=friend
fromdomain=xxx.xxx.xxx.xxx
host=xxx.xxx.xxx.xxx
dtmfmode=rfc2833
disallow=all
allow=alaw
allow=ulaw
nat=yes
insecure=very

; ext 100
[100]
type=friend
host=dynamic
secret=MyPass123
context=internal
mailbox=100@default
callgroup=1
pickupgroup=1
dtmfmode=rfc2833
canreinvite=no

; ext 200
[200]
type=friend
host=dynamic
secret=MyPass123
context=internal
callgroup=1
pickupgroup=1
dtmfmode=rfc2833
canreinvite=no

И следуя extensions.conf:

[incoming]
; Ring on extension 100, 200 and the mobile phone.
exten => s,1,Answer()
exten => s,n,Dial(SIP/100&SIP/200&SIP/VoIPProvider/*320423456789,150,r,t,)

; Pass unanswered call to a mobile phone
exten => s,n,Dial(SIP/VoIPProvider/*320423456789,150,r)

; Still not answered? Pass unanswered calls to voicemail
exten => s,n,Voicemail(100,u)
exten => s,n,Hangup

[outgoing]
exten => _XXXXXXXXXXXXXXX,1,Dial(SIP/VoIPProvider/${EXTEN})
exten => _XXXXXXXXXX,1,Dial(SIP/VoIPProvider/${EXTEN})
exten => _XXXXXX,1,Dial(SIP/VoIPProvider/${EXTEN})

[internal]
exten => _XXX,1,Dial(SIP/${EXTEN})

; Calls to ext 100
exten => 100,1,Dial(SIP/100,20)
exten => 100,n,VoiceMail(100,u)
exten => 100,n,Hangup

; Calls to ext 200
exten => 200,1,Dial(SIP/100,20)
exten => 200,n,Hangup

Всякий раз, когда я набираю свой номер с мобильного телефона, я получаю сигнал отказа. Когда я проверяю журнал wireshark, я вижу три пакета SIP:

MySipProvider -> Me: INVITE sip: s@192.168.0.3: 5060 Me -> MySipProvider: 401 Несанкционированный MySipProvider -> Me: ACK sip:s@192.168.0.3:5060

и это все, что есть. Что может происходить? Спасибо.

3 ответа

Решение

Похоже, ваш сервер Asterisk запрашивает аутентификацию при входящем звонке у вашего провайдера. Я думаю, почему, потому что значение "host" в вашей записи "VoIPProvider" в вашем sip.conf соответствует IP-адресу, с которого поступил вызов. Вы можете проверить, является ли это проблемой, временно закомментировав значение "host" и проверив, работает ли входящий вызов. Если это так, вам нужно будет внести изменения в запись "VoIPProvider", чтобы она соответствовала только исходящим вызовам, а не входящим и исходящим (вы использовали это, задав "тип", но я не в курсе пути это сделано сейчас).

Для решения исходящей проблемы пользовательский контекст во внутреннем и исходящий не включен в него, добавьте следующую строку в контекст внутреннего в extension.conf

[внутренний] включает = исходящий

так что ваши пользователи могут набирать номер на SIP транке.:)

Используйте строку регистра как это: register => urusername:urpassword@IP-адрес / имя провайдера

как в вашем случае:

регистрация => мой номер: мой пароль @XXXX/VoIPProvider

попробуй, подумай, это решит проблему:)

Другие вопросы по тегам