Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Kamailio как запретить подмену caller id абонентам.

0

Kamailio 4.0.3 ситуация следующая. Если допустим в *,в контексте исходящего транка, который зарегистрирован на Kamailio установить Set(CALLERID(all)=номер) то он инвайт с него и обрабатывает как этот номер. Он и в переменной $fU так же определяет естественно потому что в пакете от * From: "111" <sip:111@xxx.xxx.xxx.xxx> (когда на самом деле номер зарегистрирован другой) Ну вот как провайдер сип телефонии не даст же спуфингом заниматься какой бы Caller ID бы не послали ему он подставит номер тот который должен быть. Вопрос собственно как это поправить.

Я тут погуглил как смог (инглиш не так хорошо знаю) пока ничего умнее как при инвайте через uacreplacefrom("$fU","sip:$fU@$fd"); менять поля ничего не придумал. А те что нужно подставить брать из location list сравнивая Ip из таблицы регистрации с ip в инвайте. Но это больше на кривой костыль похоже. Может кто подобный вопрос решал или хотя бы направление куда двигаться подскажет.

А может потому что rtpproxy еще в работе и Kamailio дает беспрепятственно редактировать пакеты для работы с натом?

удалить закрыть спам изменить тег редактировать

спросил 2013-11-01 01:35:19 +0400

Vasiliy78 Gravatar Vasiliy78
53 2 2

Comments

Где слово астериск в вашем вопросе?

zzuz ( 2013-11-01 14:44:36 +0400 )редактировать

Эм не понял вас. Вопрос с подвохом или издеваетесь просто сидите?

Vasiliy78 ( 2013-11-01 15:34:06 +0400 )редактировать

В чем собственно проблема и где вопрос? Что и как настроено. Такое ощущение , что Вы решили тут сами с собой поговорить.

zzuz ( 2013-11-01 16:46:39 +0400 )редактировать

1 Ответ

1

проверяете

$aU==$fU.

вообще в большинстве конфигов это уже есть

ссылка удалить спам редактировать

ответил 2013-11-01 18:02:37 +0400

meral Gravatar meral flag of Ukraine
21228 23 18 169
http://pro-sip.net/

Comments

Спасибо! То что нужно. Сделал посмотреть как что будет работать

  if ( method == "INVITE" ){
  if( $aU==$fU){
  xlog("DEBUG:YES aU=$aU fU=$fU\n");
  } else {
  xlog("DEBUG:NO aU=$aU fU=$fU\n");
  }
  }

И что получилось, при звонке с ip телефона или софтфона все хорошо, значение сравнивает. Данные в переменной $aU те что и должны быть. А вот при звонке с Астериска дает null. 4 часа сейчас колдовал не пойму почему там null при инвайте. В итоге сделал вот что:

  if (!www_authorize("$td","subscriber")) {

  xlog("L_INFO", "[au=$au] IP[$si][$ua] \n");

  }

А тут переменную нормально отображает у Астериска. А при инвайте она упорно преобразуется в null.

А про какие конфиги речь?

Vasiliy78 ( 2013-11-02 01:47:34 +0400 )редактировать

ну ваш скил просто недостаточен для работы с kamailio. бывает. вы астриск вообще авторизировали? или вы думаеет kamailio сам догадается что написать в aU

meral ( 2013-11-02 10:41:32 +0400 )редактировать

Вы абсолютно правы. Скил где то в районе плинтуса. Но скил дело прокачиваемое же, вот в процессе. То что я делаю коммерчески использоваться не будет. Ну может со временем. Я лимитирование делал, ограничение у кого то 1 канал у кого-то 10 и занято на вызываемой стороне (То про что вы мне в августе еще подсказали =) ). Сделал и когда проверял наткнулся на подмену caller id случайно. Пилил пилил конфиг и зашел совсем в тупик и пришел на форум. Я честно говоря когда работал с dialog и не думал что в такие дебри залезу. Но в итоге все получилось.

>вы астриск вообще авторизировали? Да причина была в этом.

    if (method=="INVITE") {
    if (!proxy_authorize("domain","subscriber")) {
    proxy_challenge("domain","0");
    exit;
     };
     consume_credentials();
     };

Нашел на соседнем форуме. Только это у кого то работает у кого то сбои с авторизацией такой. А у вас через что сделано если не секрет? =)

Vasiliy78 ( 2013-11-04 00:04:26 +0400 )редактировать

у меня люой инвайт авторизируется. скил по камалио не прокачивается если нет комерческого использования. система не для чайников. в стандартном конфиге вроде тоже.

meral ( 2013-11-04 20:03:48 +0400 )редактировать

if (fromuri==myself) { if (!proxyauthorize("$fd", "ccsipbuddies")) { proxy_challenge("$fd", "0"); exit; }

meral ( 2013-11-04 20:07:02 +0400 )редактировать

заюзано pv_auth(через базу)

meral ( 2013-11-04 20:07:34 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-11-01 01:35:19 +0400

Просмотрен: 424 раз

Обновлен: Nov 01 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.