Asterisk Forum • Маркировка INVITE
Страница 1 из 1

Маркировка INVITE

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

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

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

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

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

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

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

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

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

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