Установление SIP-сессии через двух прокси с Kamailio
Я хочу реализовать SIP-вызов для установления сеанса через два SIP-прокси. Для этого я использую Kamailio Server, но я не знаю, как изменить конфигурационный файл kamailio.cfg (/etc/kamailio/kamailio.cfg), чтобы сделать это. Любая помощь?
Это сценарий, который я хочу реализовать, где Алиса и Боб - это SIP-клиенты (ekiga, blink, twinkle...), а Proxy 1 и Proxy 2 - два сервера Kamailio.
Alice Proxy 1 Proxy 2 Bob
| | | |
| INVITE F1 | | |
|--------------->| | |
| 407 F2 | | |
|<---------------| | |
| ACK F3 | | |
|--------------->| | |
| INVITE F4 | | |
|--------------->| INVITE F5 | |
| 100 F6 |--------------->| INVITE F7 |
|<---------------| 100 F8 |--------------->|
| |<---------------| |
| | | 180 F9 |
| | 180 F10 |<---------------|
| 180 F11 |<---------------| |
|<---------------| | 200 F12 |
| | 200 F13 |<---------------|
| 200 F14 |<---------------| |
|<---------------| | |
| ACK F15 | | |
|--------------->| ACK F16 | |
| |--------------->| ACK F17 |
| | |--------------->|
| Both Way RTP Media |
|<================================================>|
| | | BYE F18 |
| | BYE F19 |<---------------|
| BYE F20 |<---------------| |
|<---------------| | |
| 200 F21 | | |
|--------------->| 200 F22 | |
| |--------------->| 200 F23 |
| | |--------------->|
| | | |
Большое спасибо,
Алиса
1 ответ
Если у каждого прокси есть свой собственный домен DNS, то маршрутизация осуществляется через dns - например, когда alice@a.com (пользователь на прокси 1) вызывает bob@b.com (пользователь на прокси 2). Никаких конкретных изменений не потребуется в конфигурации по умолчанию.
Если оба прокси имеют один и тот же домен, вам нужно начать с файла конфигурации по умолчанию и изменить его на:
- в маршруте [LOCATION], если lookup("location") имеет значение false и запрос не поступил с другого сервера, отправьте запрос на другой сервер, например:
if(src_ip!=the.other.proxy.ip) { $du = "sip:the.other.proxy.ip"; route(RELAY); }
- если запрос поступает с другого сервера и поиск ("местоположение") по-прежнему ложен, то вызываемый абонент находится в автономном режиме, пусть kamailio возвращает 404