Во многих руководствах по asterisk указано что для того чтобы переправить через nat надо пропустить порта 5060 и 10000-20000 для rtp. пропустил. так же пропустил порт iax2.
Схема такая
asterisk -- gateway -- INTERNET -- gateway -- client.
То есть и астериск и клиент за натом.
по SIP
Когда пытаешься подключиться софтфоном по локалке - всё работает.
Когда пытаешься софтфоном подключится через интернет - нету звука но звонки идут.
когда подключаешься софтфоном по vpn (vpn в отдельной подсети которая роутится на локалку с астериском) - звонки идут
по IAX
снаружи звонки идут, но от софтфона до абонента звук есть, а от абонента звук прерывистый и разобрать невозможно.
Пробовал разные софтфоны, для android и iphone.
Есть ли у кого-то опыт в этом деле?
PF + SIP (IAX) (Нету звука)
Модератор: arachnid
PF + SIP (IAX)
Linux kasakoff 5.10.7-200.fc33.x86_64 #1 SMP Tue Jan 12 20:20:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Re: PF + SIP (IAX)
kasak писал(а): ↑09.08.2013 23:28Во многих руководствах по asterisk указано что для того чтобы переправить через nat надо пропустить порта 5060 и 10000-20000 для rtp. пропустил. так же пропустил порт iax2.
Схема такая
asterisk -- gateway -- INTERNET -- gateway -- client.
То есть и астериск и клиент за натом.
по SIP
Когда пытаешься подключиться софтфоном по локалке - всё работает.
Когда пытаешься софтфоном подключится через интернет - нету звука но звонки идут.
когда подключаешься софтфоном по vpn (vpn в отдельной подсети которая роутится на локалку с астериском) - звонки идут
по IAX
снаружи звонки идут, но от софтфона до абонента звук есть, а от абонента звук прерывистый и разобрать невозможно.
Пробовал разные софтфоны, для android и iphone.
Есть ли у кого-то опыт в этом деле?
Код: Выделить всё
${fwcmd} add 051 divert natd udp from any to me dst-port 4569,5060-5070,10000-10100 in recv ${ext_if}
${fwcmd} add 052 divert natd udp from any to me src-port 4569,5060-5070,10000-10100 in recv ${ext_if}
${fwcmd} add 053 divert natd udp from ${pbx} to any dst-port 4569,5060-5070,10000-10100 out xmit ${ext_if}
${fwcmd} add 054 divert natd udp from ${pbx} to any src-port 4569,5060-5070,10000-10100 out xmit ${ext_if}
${fwcmd} add 055 pass udp from any to ${pbx} dst-port 4569,5060-5070,10000-10100 via any
${fwcmd} add 056 pass udp from any to ${pbx} src-port 4569,5060-5070,10000-10100 via any
${fwcmd} add 057 pass udp from ${pbx} to any dst-port 4569,5060-5070,10000-10100 via any
${fwcmd} add 058 pass udp from ${pbx} to any src-port 4569,5060-5070,10000-10100 via any
${fwcmd} add 059 pass udp from me to any src-port 4569,5060-5070,10000-10100 out via ${ext_if}
${fwcmd} add 060 pass udp from me to any dst-port 4569,5060-5070,10000-10100 out via ${ext_if}
Схема такая же: и астер, и клиенты за натом.
4569 - IAX, 5060-5070 - SIP, 10000-10100 - RTP (сотни портов хватает за глаза)
Правда, это ipfw. Про PF не скажу
Re: PF + SIP (IAX)
прописано, забыл указать. всё равно не работает
Linux kasakoff 5.10.7-200.fc33.x86_64 #1 SMP Tue Jan 12 20:20:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Re: PF + SIP (IAX)
Re: PF + SIP (IAX)
pf.conf:
Код: Выделить всё
ext_if = "em0"
int_if = "em1"
lan_net = "192.168.2.0/23"
guest_vpn = "192.168.200.0/24"
phoner = "192.168.2.58"
sip_ports= "{ 4569, 5060, 10000:20000 }"
open_tcp_port = "pass in quick on em0 inet proto tcp to em0 port"
open_udp_port = "pass in quick on em0 inet proto udp to em0 port"
open_tcpudp_port_quick = "pass in quick on em0 inet proto { tcp, udp } to em0 port"
table <mynets> persist { 192.168.1.0/24, 192.168.2.0/23 }
table <squid> persist {192.168.2.0/23, !192.168.2.203, !192.168.3.250 }
set skip on { lo enc0 }
set limit states 50000
# filter rules and anchor for ftp-proxy(8)
anchor "ftp-proxy/*"
pass in quick inet proto tcp to ! <mynets> port ftp divert-to 127.0.0.1 port 8021
# anchor for relayd(8)
#anchor "relayd/*"
antispoof quick for $int_if inet
pass # to establish keep-state
# rules for spamd(8)
#table <spamd-white> persist
#table <nospamd> persist file "/etc/mail/nospamd"
#pass in on egress proto tcp from any to any port smtp \
# rdr-to 127.0.0.1 port spamd
#pass in on egress proto tcp from <nospamd> to any port smtp
#pass in log on egress proto tcp from <spamd-white> to any port smtp
#pass out log on egress proto tcp to any port smtp
## PROXY ##
pass in quick inet proto tcp from <squid> to !<mynets> port www divert-to 127.0.0.1 port 3128
## /PROXY ##
block in on $ext_if
# By default, do not permit remote connections to X11
block in on ! lo0 proto tcp to port 6000:6010
#secure ssh
table <ssh-brute> persist file "/etc/ssh.deny"
block in quick from <ssh-brute>
$open_tcp_port ssh flags S/SA keep state \
(max-src-conn-rate 3/60, overload <ssh-brute> flush global )
#secure ssh
pass proto { esp, ah, gre }
$open_tcp_port { ftp, www, 8080 }
$open_tcpudp_port_quick { domain, l2tp, pptp }
pass out on $ext_if inet from $lan_net to any nat-to $ext_if
pass out on $ext_if inet from $guest_vpn to ! <mynets> received-on pppx nat-to $ext_if
$open_udp_port $sip_ports rdr-to $phoner
sip.conf:
Код: Выделить всё
accept_outofcall_messages=yes
auth_message_requests=no
outofcall_message_context=dpma_message_context
vmexten=*97
context=from-sip-external
callerid=Unknown
notifyringing=yes
notifyhold=yes
tos_sip=cs3
tos_audio=ef
tos_video=af41
alwaysauthreject=yes
useragent=-2.11.0beta2(11.2.1)
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=speex
callevents=no
jbenable=no
defaultexpiry=120
registertimeout=20
registerattempts=0
maxexpiry=3600
minexpiry=60
notifyringing=yes
checkmwi=10
srvlookup=no
allowguest=no
notifyhold=yes
g726nonstandard=no
videosupport=no
canreinvite=no
rtptimeout=30
rtpholdtimeout=300
rtpkeepalive=0
maxcallbitrate=384
nat=yes
externip=<тут внешний ип>
localnet=192.168.2.0/255.255.254.0
localnet=192.168.200.0/255.255.255.0
localnet=192.168.1.0/255.255.255.0
Код: Выделить всё
[general]
icesupport=yes
rtpend=20000
rtpstart=10000
Linux kasakoff 5.10.7-200.fc33.x86_64 #1 SMP Tue Jan 12 20:20:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Re: PF + SIP (IAX)
пробовал регистрироваться и звонить с клиента, который не за натом, а у котого честный ИП?
что из себя представляет клиент, какие у него настройки?
что из себя представляет клиент, какие у него настройки?
Re: PF + SIP (IAX)
Только что обновил астериск и попробовал ещё раз - почему-то заработало. Потестирую несколько дней, вдруг опять сломается
Linux kasakoff 5.10.7-200.fc33.x86_64 #1 SMP Tue Jan 12 20:20:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux