9.09.2012

Новичкам в камалио

По умолчанию в kamailio.conf разрешены звонки с внешних доменов(поле FROM) на внутренний домен. Привести это может вот к чему, если у вас в дальнейшем Kamailio использует модуль DROUTING или както иначе вы маршрутизируетет звонки, то звонок предназначенный для локального пользователя (по затее разработчиков) может быть отправлен на внешний gateway.

Будьте внимательны!

# authenticate if from local subscriber
if (from_uri==myself)
{
if (!proxy_authorize(“$fd”, “subscriber”)) {
proxy_challenge(“$fd”, “0”);
exit;
}
if (is_method(“PUBLISH”))
{
if ($au!=$fU || $au!=$tU) {
sl_send_reply(“403″,”Forbidden auth ID”);
exit;
}
if ($au!=$rU) {
sl_send_reply(“403″,”Forbidden R-URI”);
exit;
}
#!ifdef WITH_MULTIDOMAIN
if ($fd!=$rd) {
sl_send_reply(“403″,”Forbidden R-URI domain”);
exit;
}
#!endif
} else {
if ($au!=$fU) {
sl_send_reply(“403″,”Forbidden auth ID”);
exit;
}
}

consume_credentials();
# caller authenticated
} else {
# caller is not local subscriber, then check if it calls
# a local destination, otherwise deny, not an open relay here
if (!uri==myself)
{
sl_send_reply(“403″,”Not relaying”);
exit;

}

Решение проблемы на мой взгляд в следующем, можно запретить входящие звонки вообще с IP кроме тех, кроме определенных, но грамотнее видимо будет, для “входящих” звонков не применять правило DROUTING.