четверг, 28 ноября 2024 г.

Strict и loose маршрутизация SIP, модуль rr в Opensips

Строгая (strict) и свободная (loose) маршрутизация SIP отличаются наличием или отсутствием модификации заголовка Request-URI (R-URI). Строгая маршрутизация устарела, сейчас обычно используется свободная.

При строгой маршрутизации SIP прокси обязан использовать для маршрутизации адреса из заголовка Route повторных запросов (ACK, BYE, Re-INVITE). При этом адрес в R-URI заменяется на "верхний" адрес из Route и сообщение передаётся на этот новый R-URI. Таким образом R-URI всегда содержит адрес следующего хоста (например, следующего прокси или уже самого получателя). Строгая маршрутизация подразумевает, что сообщение пройдет только по хостам, перечисленным в заголовке Route.



вторник, 26 ноября 2024 г.

Заголовки Via, Record-Route и Route

Заголовки Via содержат записи обо всех устройствах (прокси, АТС и т.п.), которые прошел начальный запрос на своём пути к получателю.  Ответы на запрос получатель должен отправлять на адрес из последнего заголовка Via. На обратном пути к отправителю каждое устройство удаляет заголовок Via со своим адресом, таким образом к отправителю приходит ответ с одним исходным Via, и UAC не получает информацию, каким путем прошли сообщения транзакции.

Для statefull маршрутизации используются заголовки Record-Route и Route. Каждый прокси добавляет к начальному запросу заголовок Record-Route со своим адресом. Важна последовательность заголовков, т.к. их порядок определяет путь запроса через сеть. UAS в ответах передает полный набор полученных заголовков Record-Route, и они не удаляются в процессе передачи сообщения между прокси.

Для непосредственных ответов (таких как "200 OK") на начальный запрос в рамках одной транзакции используются адреса из заголовков Via в обратном порядке. А вот для маршрутизации последующих запросов диалога (ACK, BYE, Re-INVITE) берутся адреса из Record-Route. Для этого UAC формирует заголовок Route, используя адреса из заголовков Record-Route, полученных с финальным ответом на начальный запрос. Для формирования заголовка Route адреса берутся в обратном порядке, что позволяет проходить прокси в нужной очерёдности. Прокси, получивший сообщение с заголовком Route, пересылает это сообщение на адрес из Route.

Таким образом, использование заголовков Record-Route позволяет сохранить путь запросов через сеть в рамках всего диалога. Что может быть важно для корректной маршрутизации и биллинга.

Про диалоги и транзакции читаем тут.

Подробное описание на английском тут.

понедельник, 25 ноября 2024 г.

Добавить привилегии пользователю на все таблицы базы

 #!/bin/bash

for table in `echo "SELECT schemaname || '.' || relname FROM pg_stat_user_tables;" | psql -A -U postgres -t BASENAME`;

do

    echo "GRANT ALL PRIVILEGES ON TABLE $table to \"USERNAME\";"

    echo "GRANT ALL PRIVILEGES ON TABLE $table to \"USERNAME";" | psql -A -U postgres -t BASENAME

done


пятница, 8 ноября 2024 г.

Ошибки E1

 LOS = Loss of Signal. You aren't getting signal.

LOF = Loss of Framing. Your packets aren't getting through framed correctly.

AIS = receiving Alarm Indicator Signal. The far end isn't getting things through framed correctly, and is indicating that back to you.

RAI = Remote Alarm Indicator. The far end is getting an error and is signalling that back to you.