Имеется Asterisk 16 в виртуальной машине, драйвер канала используется PJSIP . Операционная система debian 10. Asterisk устанавливался из репозиториев (apt install asterisk). Управляется с помощью правки конфигурационных файлов.
Код: Выделить всё
ast1*CLI> core show version
Asterisk 16.2.1~dfsg-1+deb10u1 built by nobody @ buildd.debian.org on a unknown running Linux on 2019-08-20 20:31:36 UTC
192.168.129.33/24 – внутренняя сеть , подключен один телефон IP телефон, default route
10.16.6.2/30 – стык с оператором №1 , авторизация по IP адресу
10.26.2.2/30 – стык с оператором №2 , авторизация по IP адресу
Код: Выделить всё
root@ast1:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether c2:cc:da:c8:6a:24 brd ff:ff:ff:ff:ff:ff
inet 192.168.129.33/24 brd 192.168.129.255 scope global ens18
valid_lft forever preferred_lft forever
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 3e:1f:7c:7e:a6:a2 brd ff:ff:ff:ff:ff:ff
inet 10.16.6.2/30 brd 10.16.6.3 scope global ens19
valid_lft forever preferred_lft forever
4: ens20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 7a:90:cd:94:28:fb brd ff:ff:ff:ff:ff:ff
inet 10.26.2.2/30 brd 10.26.2.3 scope global ens20
valid_lft forever preferred_lft forever
- Проблема в следущем , на запросы OPTIONS, которые мне посылает вышестоящий оператор , мой Asterisk отвечает не с той сетевой карты. Скриншот pcap прилагаю . Проверил все поля внимательно – сам пакет формируется верно , но Asterisk его отправляет не с той сетевой карты.
- Проблема при исходящем звонке . Неверно формируются поля VIA и Contact . При этом поля FROM и TO формируются правильно .
Тут проблема уже немного другая, пакеты отправляются и принимаются с правильного IP адреса , но внутри пакета поля VIA и Contact (IP адрес и порт ) подставляются с другого сетевого интерфейса . Именно эти поля не влияют ни на что , звук работает . Но в конце разговора финальный пакет 200 ОК пытается прилететь через маршут по умолчанию (через другую сетевую карту ) , и естественно не доходит .
https://wiki.asterisk.org/wiki/display/ ... _res_pjsip
По идее я должен в секции endpoint задать transport , и весь исходящий SIP трафик должен пойти через нужный интерфейс , но увы не работает так как нужно .
pjsip.conf
Код: Выделить всё
[transport-provider1-local-udp]
type=transport
protocol=udp
bind=10.26.2.2:5060
local_net=127.0.0.0/8
local_net=10.26.2.0/30
symmetric_transport=yes
tos=cs3
cos=3
[aor-provider1-local]
type=aor
contact=sip:10.26.2.1:5060
[endpoint-provider1-local]
type=endpoint
transport=transport-provider1-local-udp
context=provider1-local-in
disallow=all
allow=alaw
allow=ulaw
allow=g729
aors=aor-provider1-local
from_domain=10.26.2.2
media_address=10.26.2.2
bind_rtp_to_media_address=yes
direct_media=no
inband_progress=yes
user_eq_phone=yes
force_rport=no
rtp_symmetric=no
rewrite_contact=no
100rel=no
tos_audio=ef
cos_audio=5
[identify-provider1-local]
type=identify
endpoint=endpoint-provider1-local
match=10.26.2.1 ;SIP&RTP