AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Маркировка INVITE

OpenSER 5 сообщений 15.07.2009 11:27 - 16.07.2009 06:52
#1 15.07.2009 11:27

Маркировка INVITE

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

Вопрос: с помощью какого инструмента в kamailio можно добавить поле в INVITE? И как потом это поле проверить?
#2 15.07.2009 12:28
Вопрос был про добавление полей в sip-сообщение, поэтому на него и отвечаю:
используется модуль textops

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

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

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

if (is_present_hf("Название поля")) { ... }
- для проверки присутствия поля
#3 15.07.2009 13:19
Спасибо помогло. Еще один момент может знаешь? На сервере с kamailio несколько интерфейсов, в штатном режиме он всегда работает с одним, а вот с другим сервером он должен работать через другой интерфейс, причем роутинг позволяет с любого ip достучаться до второго сервака, но в силу некоторых причин, которые здесь долго описывать, нужно чтобы 1-ый сервак ходил на 2-ой с другого интерфейса. Как бы его заставить слать сообщения с другого адреса?
#4 15.07.2009 13:21
ZloMurz писал(а): нужно чтобы 1-ый сервак ходил на 2-ой с другого интерфейса. Как бы его заставить слать сообщения с другого адреса?
iptables - Linux
pf - freeBSD
#5 16.07.2009 06:52
Не нужны тут лишние сущности
Перво-наперво с помощью listen явно прописать все udp:ip:port на которых ему нужно слушать.
Если тот хост в одной подсети, то все. Если нет - добавить для него маршрут стандартным route add
ну и глянуть на изменение поведения при mhomed=1