Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Клиенты за NAT, asterisk снаружи

1

Вообщем такая проблема, у меня клиенты находятся внутри локальной сети, в инет выходят через NAT (линуксовый сервак). Астериск вообще висит на облаке в амазоне, у него есть реал айпишник. Оба клиента авторизируются на астериске, звонят друг другу, а вот данные не идут. Как быть? Я так понимаю при регистрации клиенты посылают запрос на сервер поэтому NAT и пускает их обратно, поэтому они авторизуются, а вот когда начинает отрабатывать RTP то соединение не проходит потому что оно идет на NAT извне и не инициировано изнутри, вообще у кого какие идеи есть?

удалить закрыть спам изменить тег редактировать

спросил 2011-03-04 18:55:07 +0400

godlike Gravatar godlike flag of Ukraine
814 92 24 62

обновил 2011-03-04 19:14:08 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

А в свойствах клиента прописано nat=yes? samael28 ( 2011-03-04 19:07:36 +0400 )редактировать
да, ниже все привел godlike ( 2011-03-06 13:35:31 +0400 )редактировать

6 Ответов

2

у облака в амазоне НЕТ реалного адреса. в амазоне внутри все адреса вида 10.х.х.х. тоесть в облаке ВСЕГДА включать НАТ. и писать externalip= астериску. иначе не работает.

тоесть отрабатываете стандартную систему двойного ната. в облаке пробрасываете порты 5060, 10000-20000 внутрь. в sip.conf

[general] 
nat=always
externip=ip_of_ec2_isntance
localnet=10.0.0.0/8

после этого все прекрасно работает.

ссылка удалить спам редактировать

ответил 2011-03-04 19:09:18 +0400

пост отмечен как вики сообщества

Этот пост - вики. Любой с кармой >300 может улучшить его.

обновил 2011-03-06 15:21:34 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

на амазоне есть elastic ip, можно арендовать адрес, собственно это я и сделал godlike ( 2011-03-04 19:25:36 +0400 )редактировать
тоесть мой арендованый адрес писать в externalip ? godlike ( 2011-03-04 19:30:15 +0400 )редактировать
Почему же тогда клиенты авторизируются? Если бы было так то и авторизация не проходила бы, и кстати дописал как вы сказали, не помогло( godlike ( 2011-03-04 19:35:08 +0400 )редактировать
кстати, как в облаке пробрасывать порты? godlike ( 2011-03-04 19:42:27 +0400 )редактировать
объясняю. в облаке в групе фаервола надо разрешить просто эти порты. он их сам пробрасыват по умолчанию. иногда надо пересоздать инстанс(убедитесь чтовы все сохранили). сип работает с 3-мя портами. контрольный порт, входящий и исходящий для голоса(ртп). авторизация это контрольный порт(5060 удп). входящий и исходящий в клиентах с симетричным нат обычно совпадают. в астриске тоже. берется случайно из конфигурации rtp.conf (10000-20000 по дефолту).отсутсвие голоса означает одно из двух 1) либо астриск говрит свой внутренний адрес как адрес куда слать голос(если екстрнал ип и нат не включен)- смотрите сип дебаг 2) либо у вас пакеты просто фильтруются - надо проброс портов. проверяется rtp set debug на астериске. meral ( 2011-03-05 02:54:13 +0400 )редактировать
http://www.ioncannon.net/system-administration/131/running-asterisk-in-the-cloud-with-amazon-ec2/ вот тут посмотри скрины например. meral ( 2011-03-05 02:59:56 +0400 )редактировать
у меня все порты разрешены, проблема в том что астериск не может пройти через мой нат за которым у меня висят клиенты, если я на клиентской тачке запускаю инет через впн на котором у меня есть реал айпи, то все отлично звонится godlike ( 2011-03-05 19:53:53 +0400 )редактировать
посмотрите где у меня екстреналип и где у вас в конфиге. т.е вверху файла или sip_nat.conf для фриппбкс. проверяется вот так asterisk -rx "sip show settings". должно показывать внешний адрес. meral ( 2011-03-06 09:30:03 +0400 )редактировать
Network Settings: --------------------------- SIP address remapping: Disabled, externip is 0.0.0.0 Externhost: <none> Externip: 0.0.0.0:0 Externrefresh: 10 Internal IP: 10.212.130.95:5060 Localnet: 10.0.0.0/255.0.0.0 STUN server: 0.0.0.0:0 Почему так? Ведь я указал внешний айпи godlike ( 2011-03-06 13:16:15 +0400 )редактировать
значит, не там указали... а сори, это я протупил externip= надо. http://www.voip-info.org/wiki/view/tipsmeral ( 2011-03-06 15:19:59 +0400 )редактировать
Дааа!!! Заработало! Спасибо человек) godlike ( 2011-03-06 16:42:54 +0400 )редактировать
читайте доки ;) это стандартная настройка meral ( 2011-03-06 16:59:16 +0400 )редактировать
0

externip = 50.17.226.11

жолжно быть в [general] секции!!!! я вам уже три раза сказал это

ссылка удалить спам редактировать

ответил 2011-03-06 09:29:34 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2011-03-06 16:59:51 +0400

Comments

я пробовал и по вашему, ничего не дало godlike ( 2011-03-06 09:54:14 +0400 )редактировать
да и при чем тут нат на амазоне, если без всяких настроек в секции general у меня все прекрасно работает если софтфон имеет реал айпи godlike ( 2011-03-06 10:04:28 +0400 )редактировать
вот вот. если реал адрес. а если не реал, то все сложнее. сип дебаг смотрели? meral ( 2011-03-06 12:15:07 +0400 )редактировать
выше godlike ( 2011-03-06 13:35:55 +0400 )редактировать
0

Должно работать. nat=yes включили в настройках SIP абонентов?

ссылка удалить спам редактировать

ответил 2011-03-04 20:10:27 +0400

asteriskguru Gravatar asteriskguru
1160 4 5 21
http://www.asteriskguru.r...

Comments

конечно godlike ( 2011-03-04 23:13:07 +0400 )редактировать
проблема в том что оба клиента за натом, соответственно кто бы из них не инициировал поток данных, он идет от сервера о котором нат ничего не знает godlike ( 2011-03-04 23:13:52 +0400 )редактировать
Это не должно быть проблемой, т.к. никто из SIP клиентов не ждет получения RTP пакета перед отправкой. Они оба начинают отправку, делают "дырку" в NAT и начинают получать входящий RTP трафик через эту же "дырку". Включайте tcpdump и смотрите где косяк... asteriskguru ( 2011-03-05 20:43:34 +0400 )редактировать
0

[general]
nat=always
externalip=50.17.226.11
localnet=10.0.0.0/8

[1]
type=friend
secret=user1
port=5060
permit=0.0.0.0/0.0.0.0
nat=yes
host=dynamic
dial=SIP/1
context=default
callerid=device <1>
externip = 195.88.73.251

[2]
type=friend
secret=user2
port=5060
permit=0.0.0.0/0.0.0.0
nat=yes
host=dynamic
dial=SIP/2
context=default
callerid=device <2>
externip = 195.88.73.251

[444]
type=friend
qualify=yes
port=5060
permit=0.0.0.0/0.0.0.0
nat=no
host=dynamic
dial=SIP/444
context=default
callerid=device <444>

вот sip.conf такой как вы meral мне предложили, он все равно не работает, вот скриншот параметров моего сервера на амазоне если нужно описание изображения

ссылка удалить спам редактировать

ответил 2011-03-06 12:59:54 +0400

godlike Gravatar godlike flag of Ukraine
814 92 24 62
0

Уже совсем растерялся как быть, все перепробовал, вот sip.conf


[1]
type=friend
secret=user1
qualify=yes
port=5060
permit=0.0.0.0/0.0.0.0
nat=yes
host=dynamic
dial=SIP/1
context=default
callerid=device <1>
qualify=yes
sipreinvite=no
externip = 195.88.73.251

[2]
type=friend
secret=user2
qualify=yes
port=5060
permit=0.0.0.0/0.0.0.0
nat=yes
host=dynamic
dial=SIP/2
context=default
callerid=device <2>
qualify=yes
sipreinvite=no
externip = 195.88.73.251

[444]
type=friend
qualify=yes
port=5060
permit=0.0.0.0/0.0.0.0
nat=yes
host= 50.17.226.11
dial=SIP/444
context=default
callerid=device <444>
externalip = 50.17.226.11

444 это типа операторский номер, если звоню на него должно игратся звуквое меню Если подключаю впн все работает значит проблема не в амазоне в в моем нате, что делать? Нат под линуксом, вот код ната


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.120.5/32 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 195.88.73.251/32 -o eth1 -j MASQUERADE

50.17.226.11 это айпи сервака на амазоне на котором висит астериск 195.88.73.251 внешний айпи моего ната

ссылка удалить спам редактировать

ответил 2011-03-05 22:17:58 +0400

godlike Gravatar godlike flag of Ukraine
814 92 24 62

обновил 2011-03-05 22:21:27 +0400

0


 -- Registered SIP '1' at 195.88.73.251 port 5060
[Mar  6 10:17:35] NOTICE[9376]: chan_sip.c:21331 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1
  == Using SIP RTP CoS mark 5
    -- Executing [444@default:1] Set("SIP/1-00000001", "home="/home/ubuntu/astersounds"") in new stack
    -- Executing [444@default:2] Wait("SIP/1-00000001", "1") in new stack
    -- Executing [444@default:3] Playback("SIP/1-00000001", ""/home/ubuntu/astersounds"/conf-adminmenu") in new stack
    -- <sip 1-00000001=""> Playing '/home/ubuntu/astersounds/conf-adminmenu.slin' (language 'en')
    -- Executing [444@default:4] Dial("SIP/1-00000001", "SIP/444,20") in new stack
  == Using SIP RTP CoS mark 5
[Mar  6 10:18:03] WARNING[10014]: app_dial.c:1745 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/1-00000001' status is 'CHANUNAVAIL'


ссылка удалить спам редактировать

ответил 2011-03-06 13:13:01 +0400

godlike Gravatar godlike flag of Ukraine
814 92 24 62

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-03-04 18:55:07 +0400

Просмотрен: 3,999 раз

Обновлен: Mar 06 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.