Маркировка INVITE

Kamailio/OpenSIPS и другие производные от SER.

Модераторы: Admins, Модераторы

Ответить
ZloMurz
Сообщения: 303
Зарегистрирован: 31 янв 2008, 15:19

Маркировка INVITE

Сообщение ZloMurz » 15 июл 2009, 11:27

Есть 3 сервера: 2 kamailio + asterisk
Необходимо реализовать схему: http://docs.google.com/View?id=dfz99g35_26cp5nqbgg
Смысл: При звонке на сервер проверяется есть ли пиры в локальной таблице зарегистрированных, если нет, то тоже самое проверяется на втором сервере, если и там нет то уходим на asterisk. Чтобы звонок между серверами не зациклился хочется промаркировать пакет INVITE на этапе после не нахождения пира в локальной таблице, чтобы на втором сервере увидеть этот маркер и если опять не находим абонента в зарегистрированных пирах то отправляем его уже на asterisk.
Думал добавить какую-нибудь запись в поле Subject: или может быть есть специально поле для таких целей?

Вопрос: с помощью какого инструмента в kamailio можно добавить поле в INVITE? И как потом это поле проверить?

Аватара пользователя
kks
Сообщения: 29
Зарегистрирован: 03 июл 2009, 07:49

Сообщение kks » 15 июл 2009, 12:28

Вопрос был про добавление полей в sip-сообщение, поэтому на него и отвечаю:
используется модуль textops

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

append_hf("Название поля: значение\r\n");
- для добавления поля

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

if (is_present_hf("Название поля")) { ... }
- для проверки присутствия поля

ZloMurz
Сообщения: 303
Зарегистрирован: 31 янв 2008, 15:19

Сообщение ZloMurz » 15 июл 2009, 13:19

Спасибо помогло. Еще один момент может знаешь? На сервере с kamailio несколько интерфейсов, в штатном режиме он всегда работает с одним, а вот с другим сервером он должен работать через другой интерфейс, причем роутинг позволяет с любого ip достучаться до второго сервака, но в силу некоторых причин, которые здесь долго описывать, нужно чтобы 1-ый сервак ходил на 2-ой с другого интерфейса. Как бы его заставить слать сообщения с другого адреса?

Ded
Guru
Сообщения: 4428
Зарегистрирован: 10 янв 2005, 16:01
Откуда: Road Town, Tortola, British Virgin Islands

Сообщение Ded » 15 июл 2009, 13:21

ZloMurz писал(а): нужно чтобы 1-ый сервак ходил на 2-ой с другого интерфейса. Как бы его заставить слать сообщения с другого адреса?
iptables - Linux
pf - freeBSD

dyer
Модератор
Сообщения: 251
Зарегистрирован: 03 мар 2005, 15:37
Откуда: Санкт Петербург

Сообщение dyer » 16 июл 2009, 06:52

Не нужны тут лишние сущности
Перво-наперво с помощью listen явно прописать все udp:ip:port на которых ему нужно слушать.
Если тот хост в одной подсети, то все. Если нет - добавить для него маршрут стандартным route add
ну и глянуть на изменение поведения при mhomed=1

Ответить