Страница 1 из 2

МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 10:25
DmitryZZZ
Коллеги здравствуйте!
Достался мне в наследство старичек Asterisk 1.4.17 на SlackWare 14.1. До недавнего времени все четко работало пока провайдер что-то у себя не поменял, и в частности авторизацию. Теперь она без пароля. Только по номеру DID и IP исходящего (SIP) интерфейса.
Asterisk крутится на машинке с двумя интерфейсам. К интерфейсу LAN подключены клиенты, к интерфейсу SIP - провайдер, каждый соответственно со своей адресацией.
Проблема в том, что при совершении вызова, провайдеру уходит адрес LAN интерфейса (10.10.0.20/24), а нужно что бы уходил адрес SIP интерфейса (10.30.50.11/22)! И как это пофиксить, прошу вашей помощи.

sip.conf

Код: Выделить всё

[prov]
username=DID_NUMBER
type=peer
host=PROV_IP
port=5060
dtmfmode=rfc2833
insecure=invite
allow=alaw
call-limit=5
disallow=all
allow=alaw
canreinvite=no
context=office
extensions.conf

Код: Выделить всё

[office]
...
exten => _0XXXXXXXXX,1,Ringing
exten => _0XXXXXXXXX,n,Dial(SIP/${EXTEN}@PROV_IP:2015,60)
...
В консольке получаю следующее:

Код: Выделить всё

Retransmitting #3 (no NAT) to PROV_IP:2015:
INVITE sip:TEST_DIAL_NUM@PROV_IP:2015 SIP/2.0
Via: SIP/2.0/UDP 10.10.0.20:5060;branch=z9hG4bK677b34de;rport
From: "DID_NUMBER" <sip:DID_NUMBER@10.10.0.20>;tag=as07f45d3e
To: <sip:TEST_DIAL_NUM@PROV_IP:2015>
Contact: <sip:DID_NUMBER@10.10.0.20>
Call-ID: 1deb7f1a7d6a379b0e45988e043932d7@10.10.0.20
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Fri, 13 Sep 2019 06:10:59 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: 328

v=0
o=root 3077 3077 IN IP4 10.10.0.20
s=session
c=IN IP4 10.10.0.20
t=0 0
m=audio 22936 RTP/AVP 8 97 0 3 101
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv
Подскажите, куда копнуть, чтобы в строке From: "DID_NUMBER" <sip:DID_NUMBER@10.10.0.20> подставить IP исходящего интерфейса?

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 11:11
ded
sip.conf

Код: Выделить всё

[general]
bindaddr=10.30.50.11
и sip reload.
в более новых системах -
udpbindaddr=10.30.50.11

Проверить -
asterisk -rx 'sip show settings' | grep Bindaddress

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 13:49
DmitryZZZ
Поменял, но как следует из названия и описания параметра, после присвоения значения IP адреса SIP интерфейса таки отвалились клиенты на LAN интерфейсе, поскольку Астериск перестал слушать LAN интерфейс.

Код: Выделить всё

# netstat -tulnp | grep 5060
udp        0      0 10.30.50.11:5060         0.0.0.0:*                          3077/asterisk       
А у меня все клиенты живут в локалке, и роутить их на интерфейс SIP сети не вариант.

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 14:05
Vlad1983

Код: Выделить всё

localnet=10.10.0.0/24
localnet=10.30.48.0/22

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 14:49
DmitryZZZ
Да, и localnet. Все еще раз перепроверил. Результат тот-же.

То есть при :

Код: Выделить всё

    [general]
    bindaddr=10.30.50.11
    localnet=10.10.0.0/24
    localnet=10.30.48.0/22
клиенты отваливаются.

С bindaddr=0.0.0.0 клиенты регаются, но IP уходит LAN интерфейса.

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 14:57
ded
На главном роутере добавьте маршрут укажите
route add host 10.30.50.11 gw 10.10.0.20 (в терминологии Линукса)

После чего в локальных ИП телефонах указывайте SIP proxy = 10.30.50.11

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 15:12
Vlad1983
PROV_IP точно роутится через шлюз в сети 10.30.48.0/22 или расположен в этой же сети?

Код: Выделить всё

traceroute -n PROV_IP

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 15:54
ded
Vlad1983, провайдеры подают телефонию в отдельном VLAN, в котором указывают клиенту его адрес (10.30.50.11) и адрес своего прокси (может быть 10.30.48.1, а может быть и публичный). Провайдер мутный, даже SIP порт 2015, и если ТС скрывает host=PROV_IP
значит публичный.
Зря скрывает, при модели безопасности - принимать только адреса из сети VLAN с source 10.30.48.0/19 он в принципе вполне защищён.

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 16:12
DmitryZZZ
ded:
После чего в локальных ИП телефонах указывайте SIP proxy = 10.30.50.11
Вот этого бы и не хотелось. Этот костыль в самом последнем случае рассматриваю.

Vlad1983:
PROV_IP точно роутится через шлюз в сети 10.30.48.0/22 или расположен в этой же сети?
Вопрос не с доступностью прокси. Тут все хорошо. Даже звонок извне приходит.
Зря скрывает, при модели безопасности - принимать только адреса из сети VLAN с source 10.30.48.0/19 он в принципе вполне защищён.
Дело не в модели безопасности, а в том, чтобы не отвлекаться на второстепенное. С сетью L2/3 все в порядке. Проблема только в авторизации, из-за подстановки IP не того интерфейса.

Re: МультиХоумед Астериск и подстановка адресов

Добавлено: 13 сен 2019, 16:38
ded
DmitryZZZ писал(а): После чего в локальных ИП телефонах указывайте SIP proxy = 10.30.50.11
Вот этого бы и не хотелось. Этот костыль в самом последнем случае рассматриваю.
DmitryZZZ, а чего хотелось бы?
Что нужно было бы указать в локальных ИП телефонах в качестве SIP proxy? Старый 10.10.0.20 ??
Но мы выяснили с вами, что провайдер не принимает так.

Выход такой: локальную сеть 10.10.0.0/24 НАТить для телефонии через 10.30.50.11