context=public
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
udpbindaddr=0.0.0.0
tcpenable=no
transport=udp
srvlookup=no
allowguest=no
allowoverlap=no
dtmfmode=rfc2833
disallow=all
allow=alaw
language=ru
alwaysauthreject=yes
t38pt_udptl=yes,redundancy,maxdatagram=400
canreinvite=no
localnet=192.168.0.0/255.255.255.0
externip=88.87.76.35
register => 00178442526594:**********:001526594@188.187.253.3:5060
register => 00278442526594::**********:002526594@188.187.253.3:5060
register => 00378442526594::**********:003526594@188.187.253.3:5060
register => 00478442526594::**********:004526594@188.187.253.3:5060
register => 00578442526594::**********:005526594@188.187.253.3:5060
register => 78442526660::**********:526660@188.187.253.3:5060
[ertelecom-in](!)
type=peer
call-limit=0
context=incoming
insecure=invite
nat=force_rport,comedia
deny = 0.0.0.0/0.0.0.0
[ertelecom1-in](ertelecom-in)
host=188.187.253.1
permit=188.187.253.1
[ertelecom2-in](ertelecom-in)
host=188.187.253.2
permit=188.187.253.2
[ertelecom3-in](ertelecom-in)
host=188.187.253.3
permit=188.187.253.3
На шлюзе прокинут порт 5060 с 88.87.76.35 на 192.168.0.65 и пакеты успешно ходят.
iptables -A FORWARD -p udp -m udp --dport 5060 --src 192.168.0.65 --dst 188.187.253.1 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 5060 --src 192.168.0.65 --dst 188.187.253.2 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 5060 --src 192.168.0.65 --dst 188.187.253.3 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 5060 --src 188.187.253.1 --dst 192.168.0.65 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 5060 --src 188.187.253.2 --dst 192.168.0.65 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 5060 --src 188.187.253.3 --dst 192.168.0.65 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 5060 -j DROP
Код: Выделить всё
Host dnsmgr Username Refresh State Reg.Time
188.187.253.3:5060 N 78442526660 105 Registered Tue, 17 Sep 2013 19:09:39
188.187.253.3:5060 N 005784425265 105 Registered Tue, 17 Sep 2013 19:09:40
188.187.253.3:5060 N 004784425265 105 Registered Tue, 17 Sep 2013 19:09:40
188.187.253.3:5060 N 003784425265 105 Registered Tue, 17 Sep 2013 19:09:40
188.187.253.3:5060 N 002784425265 105 Registered Tue, 17 Sep 2013 19:09:40
188.187.253.3:5060 N 001784425265 105 Registered Tue, 17 Sep 2013 19:09:40
Код: Выделить всё
19:14:07.572873 IP (tos 0xb8, ttl 63, id 61221, offset 0, flags [DF], proto UDP (17), length 1145) 188.187.253.2.5161 > 88.87.76.35.5060: SIP, length: 1117
INVITE sip:s@88.87.76.35:5060 SIP/2.0
Via: SIP/2.0/UDP 188.187.253.2:5161;rport;branch=z9hG4bK-784048060-3809585951-4082921124-1817713916
From: "78442374901" <sip:78442374901@188.187.253.2:5161;user=phone>;tag=2767559100-3809585951-4082921124-1817713916
To: <sip:00578442526594@88.87.76.35;user=phone>
Call-ID: bc99f5cc1fab11e3a46e5cf3fc1c586c@188.187.253.2
CSeq: 1 INVITE
Contact: "78442374901" <sip:78442374901@188.187.253.2:5161;user=phone>
Content-Type: application/sdp
Allow: ACK, BYE, CANCEL, INFO, INVITE, OPTIONS, REFER, REGISTER, SUBSCRIBE, UPDATE
Max-Forwards: 70
User-Agent: MERA MVTS3G v.4.3.0-38t
Cisco-Guid: 3137821210-531304931-2758696179-4229716076
Content-Length: 415
v=0
o=- 1379430847 1379430847 IN IP4 188.187.253.2
s=-
c=IN IP4 188.187.253.2
t=0 0
m=audio 39174 RTP/AVP 8 0 18 97 98 99 96
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:97 G729/8000
a=fmtp:97 annexb=yes
a=rtpmap:98 G729/8000
a=fmtp:98 annexb=no
a=rtpmap:99 G729/8000
a=fmtp:99 annexb=yes
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-15
a=sendrecv
19:14:07.573489 IP (tos 0x0, ttl 63, id 64850, offset 0, flags [none], proto UDP (17), length 673) 88.87.76.35.5060 > 188.187.253.2.5161: SIP, length: 645
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 188.187.253.2:5161;branch=z9hG4bK-784048060-3809585951-4082921124-1817713916;received=192.168.0.51;rport=5161
From: "78442374901" <sip:78442374901@188.187.253.2:5161;user=phone>;tag=2767559100-3809585951-4082921124-1817713916
To: <sip:00578442526594@88.87.76.35;user=phone>;tag=as4fede8b4
Call-ID: bc99f5cc1fab11e3a46e5cf3fc1c586c@188.187.253.2
CSeq: 1 INVITE
Server: Asterisk PBX 11.5.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="75c1abb5"
Content-Length: 0
19:14:07.574237 IP (tos 0xb8, ttl 63, id 61222, offset 0, flags [DF], proto UDP (17), length 492) 188.187.253.2.5161 > 88.87.76.35.5060: SIP, length: 464
ACK sip:s@88.87.76.35:5060 SIP/2.0
Via: SIP/2.0/UDP 188.187.253.2:5161;rport;branch=z9hG4bK-784048060-3809585951-4082921124-1817713916
From: "78442374901" <sip:78442374901@188.187.253.2:5161;user=phone>;tag=2767559100-3809585951-4082921124-1817713916
To: <sip:00578442526594@88.87.76.35;user=phone>;tag=as4fede8b4
Call-ID: bc99f5cc1fab11e3a46e5cf3fc1c586c@188.187.253.2
CSeq: 1 ACK
Max-Forwards: 70
User-Agent: MERA MVTS3G v.4.3.0-38t
Content-Length: 0
При получении сообщения INVITE от удаленного ресурса Asterisk пы-
тается аутентифицировать строку символов перед знаком @ в строке
INVITE, полученную в SIP-заголовке с именем описания канала из
sip.conf. Если удаленный конец связи является агентом пользовате-
ля, его аутентификация будет проводиться исходя из описания user.
Однако, если удаленный конец является прокси-сервисом SIP, он
будет аутентифицироваться по записи peer. Когда вызовы поступа-
ют от такого провайдера, как Free World Dialup, который выступает
426 Приложение А
в роли прокси для удаленной стороны, фактически вызывающей
вас, этот провайдер не может принимать вызов от лица конечной
точки. Поскольку было бы непрактичным конфигурировать аутен-
тификацию для каждого FWD-пользователя и поскольку FWD не
может отвечать на сообщения 407 Proxy Authentication Required
(Необходима аутентификация на прокси), требуется альтернатив-
ный способ разрешения приема звонков от этих абонентов.
Задавая insecure=invite, вы определите, какому каналу peer ищется
соответствие при сравнении IP-адреса или имени хоста и номера пор-
та с предоставленными в поле Contact SIP-заголовка опциями host
и port в sip.conf. Если соответствие найдено, исходное сообщение
INVITE не станет требовать аутентификации и звонок будет разрешен.
При наличии большого количества конечных точек за NAT-уст-
ройством необходимо активировать параметр insecure=port, чтобы
выполнять сопоставление только по IP-адресу. Чтобы не предъяв-
лять требование на аутентификацию во входящем INVITE для peer,
задайте insecure=invite,port