Opened 8 months ago

Closed 8 months ago

Last modified 8 months ago

#412 closed баг (invalid)

Отбой по причине 403

Reported by: san Owned by: alx
Priority: высокий Milestone: 1 очередь
Component: any Keywords:
Cc:

Description

Пользователь отправляет вызов в плату VE-01, в ответ плата говорит 403.
Пользователь ожидал что соединение пройдёт успешно и просит помочь разобраться в причине отбоя.
конфиг платы и дамп обмена Sip сообщениями приложу ниже

Attachments (2)

config-export-VE-01 (1).xml (1.3 KB ) - added by san 8 months ago.
gtch-no_plus7.pcapng (3.5 KB ) - added by san 8 months ago.

Download all attachments as: .zip

Change History (8)

by san, 8 months ago

Attachment: config-export-VE-01 (1).xml added

by san, 8 months ago

Attachment: gtch-no_plus7.pcapng added

comment:1 by alx, 8 months ago

Приложи, пожалуйста, файл /etc/repro.config из платы VE-01.

Last edited 8 months ago by alx (previous) (diff)

comment:2 by alx, 8 months ago

Предварительно же могу предположить следующее. SIP прокси платы VE-01 помещает в список доменов, за которые он ответственен, следующие значения:

  • 127.0.0.1;
  • адрес IPv4 интерфейса eth0 (если есть);
  • адрес IPv6 интерфейсе eth0 (если есть).

Судя по приложенной конфигурации платы, интерфейс eth0 имеет статический адрес IPv4 10.197.4.2, а протокол IPv6 отключен. Следовательно, список "своих" доменов (за который ответственен прокси-сервер) содержит 127.0.0.1 и 10.197.4.2.

Насколько я вижу в приложенном дампе, плата получила сообщение INVITE, отправленное UAC с URI sip:3424176952@172.16.56.6:5060;user=phone;cpc=ordinary и адресованное URI sip:3424176077@VPBX-TRANSGAZCHAIK:5060;user=phone. Как мы видим, ни домен отправителя (172.16.56.6), ни домен получателя (VPBX-TRANSGAZCHAIK) не являются доменами платы VE-01 (доменами, за которые ответственен прокси-сервер платы), если только в конфиг-файле прокси-сервера /etc/repro.config не были прописаны дополнительные домены, о чем мы сможем узнать после предоставления этого файла. Если так, то имеет место ситуация, когда посторонний пользователь (пользователь не нашего домена) просит наш прокси-сервер переслать сообщение другому постороннему пользователю (тоже не из нашего домена). Прокси-севрер платы VE-01 такой сервис (релеинг сообщений между посторонними, "чужими" юзер-агентами) не предоставляет, о чем он и сообщил отправителю ответом "403 Relaying Forbidden". И это правильное поведение, так как иначе наш прокси-сервер являлся бы так называемым "открытым релеем" (open relay). По-моему так (с) Винни Пух.

Last edited 8 months ago by alx (previous) (diff)

comment:3 by san, 8 months ago

Пользователь настраивал плату только через веб-интерфейс, маловероятно что в конфиг-файле прокси вдруг окажется этот домен. Думаю на этом можно закончить расследование.

Last edited 8 months ago by san (previous) (diff)

in reply to:  3 comment:4 by alx, 8 months ago

Resolution: invalid
Status: newclosed

Replying to san:

Пользователь настраивал плату только через веб-интерфейс, маловероятно что в конфиг-файле прокси вдруг окажется этот домен. Думаю на этом можно закончить расследование.

OK.

comment:5 by san, 8 months ago

А скажи, пожалуйста, что и куда нужно записать в /etc/repro.config чтобы прокси воспринимал домен VPBX-TRANSGAZCHAIK как свой ?

in reply to:  5 comment:6 by alx, 8 months ago

Replying to san:

А скажи, пожалуйста, что и куда нужно записать в /etc/repro.config чтобы прокси воспринимал домен VPBX-TRANSGAZCHAIK как свой ?

Domains = localhost, 127.0.0.1, VPBX-TRANSGAZCHAIK

А вообще-то там все написано:

# Specify domains for which this proxy is authorative (in addition to those specified on web.
# interface) - comma separate list
# Notes: * Domains specified here cannot be used when creating users, domains used in user
#          AORs must be specified on the web interface.
#        * In previous versions of repro, localhost, 127.0.0.1, the machine's hostname,
#          and all interface addresses would automatically be appended to this
#          configuration parameter.  From now on, such values must be listed
#          here explicitly if required, e.g.
#
#             Domains = localhost, 127.0.0.1, sip-server.example.org, 10.83.73.80
#
#          although when using TLS only, it is not desirable or necessary to
#          add such values.
#

И да, выше в comment:2 я забыл, что еще localhost там обычно прописан.

Note: See TracTickets for help on using tickets.