Всем привет.
Сразу оговорюсь я совсем недавно админю Asterisk. Вот уже две недели не могу настроить SIP транк с входящей связью на Asterisk. Тех поддержка поставщика услуг на все обращения дает ответы типа "да у вас ничего не работает" и никаких дельных советов.
Предистория:
Купили мы у зебры телеком прямой московский номер с предоставлением услуг связи по SIP протоколу, проблемы начались еще до подписания договора, но это отдельная тема, спишем часть проблем на лето и отпуска сотрудников компании.
Были предоставлены учетные данные для двух транков:
Настроил я оба транка, регистрация проходит отлично. Исходящая связь по тракну 1 работает отлично. Входящая связь через транк 2 не работает. И вот здесь начинается самое интересное. При звонке на телефонный номер, например с сотового, слышу сообщение "неправильно набран номер ..." при этом астриск в момент звонка никак не реагирует. Техподдержка утверждает что звонок уходит к нам, а наше оборудование отбивает его. Status: 503 Service Unavailable
Вся проблема в том, что я как ни пытаюсь посмотреть дамп трафика в момент попытки дозвониться, не могу ничего увидеть. Через интерфейс не проходит ни одного пакета. Смотрел так:
1) tcpdump -i eth1 -nn port 5060
2) ngrep -d eth1 port 5060
Я почти поверил в то, что мой firewall ,блокирует трафик, но я побывал его вообще выключать - результат тотже. Правда смущает результат команды nmap -sU -p 5060 X.X.X.X
PORT STATE SERVICE
5060/udp open|filtered sip
Конфигурация и натройки. На компьютер с двумя сетевыми интерфейсами установлен Elastix 1.6.2-33
eth0 - локалка
eth1 - internet
Настройки iptables
*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -p udp -m udp --dport 5060 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT
-A INPUT -p udp -m udp --dport 10000:30000 -j ACCEPT
-A FORWARD -m state -i eth1 -o eth0 --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state -i eth1 --state ESTABLISHED,RELATED -j ACCEPT
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
Sip.conf
[general]
bindport = 5060
bindaddr = 0.0.0.0
srvlookup = yes
t38pt_udptl = yes,redundancy
dtmfmode = rfc2833
externip = x.x.x.x
localnet=192.168.0.0/255.255.255.0
canreinvite=no
Настройка транков.
[zebra]
username=0001
usereqphone=yes
type=friend
secret=XXXXXXXXXX
nat=yes
insecure=invite
host=sip.zebra.ru
fromuser=0001
fromdomain=sip.zebra.ru
disallow=all
canreinvite=no
canredirect=no
allow=g729,ulaw,alaw
[zebra_in]
username=00008
usereqphone=yes
type=friend
secret=XXXXXXXXXXXX
insecure=invite
host=sip.zebra.ru
fromuser=00008
fromdomain=sip.zebra.ru
disallow=all
context=incoming_zebra
allow=g729
allow=ulaw
allow=alaw
nat=yes
register=0001:XXXXXXXXXX:0001@sip.zebra.ru/0001~3600
register=00008:XXXXXXXXXX:00008@sip.zebra.ru/00008~3600
[incoming_zebra]
exten => s,1,Playback(hello-world)
Подскажите пожалуйста в какую сторону рыть, у меня уже кончились мысли. Если что-то не так в настройках поправьте меня.
Спасибо.
зачем регистрировать исходящий транк? sip show registry?
зы а вообще надо голосовать кошельком, переходите к другому провайдеру. номер как я понял все равно не работает(раскручен)
Победил я зебру.
После того как я попросил из проверить все на своем оборудовании, на мой сервер стал ходить трафик.
Собственно типовая настройка которую они так всем предлагают, немного не точна.
Они предлагают так: register => {sip id}:{password}:{sip id}@ sip.zebra.ru /{sip id}~3600
Может кому пригодится, чтобы получать входящие пробуйте так:
sip.conf
register => 4950000000:****:0000123@sip.zebra.ru /0000123~3600
;4950000000 - номер телефона
;0000123 - username
;**** - пароль
[1234]
type=friend
secret=**
nat=yes
host=dynamic
username=1234
dtmfmode=rfc2833
allow = ulaw;alaw;g729a
context=sip-dialout
callerid=123
[zebra]
host = sip.zebra.ru
type = friend
username = 0000123
fromuser = 4950000000
secret = ****
fromdomain = sip.zebra.ru
insecure = invite
usereqphone = yes
context = incoming
allow = ulaw;alaw;g729a
extensions.conf
[incoming]
exten => _X.,1,Dial(SIP/1234/${EXTEN})
Задан: 2011-09-24 13:53:04 +0400
Просмотрен: 3,405 раз
Обновлен: Sep 28 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.