Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#394 closed баг (fixed)

Не работает маскарадинг Invite от шлюза

Reported by: san Owned by: alx
Priority: полный атас Milestone: 1 очередь
Component: any Keywords:
Cc:

Description

Конфиг xchange\alx\Test_and_bugs\VE-01\config-export-VE-01_maskarad.xml
В Invite от окончаний FXS и АДАСЭ в поле Contact вижу адрес 127.0.0.1:6060, хотя чекбокс "Маскарадинг от шлюза" установлен и я ожидал в поле контакт увидеть внешний адрес платы.

Change History (4)

comment:1 by san, 3 years ago

Ревизия ПО VE-01: 72

comment:2 by alx, 3 years ago

Кажется я понял, в чем проблема. Модификация поля Contact производится в обработчике LocationServer, так как он у нас уже давно использовался для наших внутренних нужд. Предполагалось, что любой входящий запрос будет попадать в него.

Однако это предположение неверно. Если запрос адресован в чужой домен, то когда в процессе выполнения обработчиков в цепочке дело доходит до AmIResponsible, он определяет, что сообщение адресовано не нашему домену, и прекращает выполнение обработчиков цепочки (все последующие обработчики пропускаются!). А так как LocationServer находится в цепочке позже, чем AmIResponsible, то и модификация поля Contact не выполняется.

Предположительно решением будет добавление еще одного обработчика непосредственно перед AmIResponsible, в котором будет выполняться модификация поля Contact вместо обработчика LocationServer.

Также было бы правильно вынести туда и проверки блокировок, так как сейчас получается, что блокировки абонента не действуют, если он отправляет вызов не нашему домену...

comment:3 by alx, 3 years ago

Resolution: fixed
Status: newclosed

In 2057/sip_ua:

Исправлена ошибка: маскарадинг INVITE не выполнялся, если вызов адресован в чужой домен.
Также если вызов был адресован в чужой домен, не работала административная блокировка
исходящих вызовов. Теперь проверки блокировки и маскарадинг контакта выполняются
раньше в цепочке обработчиков (непосредственно перед обработчиком AmIResponsible).
Closes #394.

comment:4 by alx, 3 years ago

Проверку блокировки входящих вызовов я оставил в обработчике LocationServer, чтобы оставалась возможность перенаправить его незаблокированному абоненту или вообще в другой домен...

Note: See TracTickets for help on using tickets.