Re: Re: cdr и прочее.

От: Vladimir A. Butenko <CGatePro_at_mx_ru>
Дата: Sat 04 Feb 2006 - 10:42:10 MSK

On Sat, 04 Feb 2006 10:02:07 +0300
  "German Myzovsky" <CGatePro@mx.ru> wrote:

>> "Много внимания" - это сделать так, чтобы те, кто всё еще торгуют 
>> минутками - могли это делать. И они это делать могут - только используя 
>> CGatePro ПОЛНОСТЬЮ - не как SIP Proxy, а как SIP Application Server - 
>> через CG/PL Applications.
>> 
>> Как - было уже описано.

>
> Возвращаясь к Subject'у. Нужно еще объяснить, для чего же CDR,
> и почему именно в таком виде.
>
> Читаю лог. Ни одного моего адреса или домена, кроме localhost.
> EXTCDR out(211): 13643 CDR 01 200-INVITE <...><..><..>
> <sip:9058503400@204.11.194.10:5070><sip:*4191695100@sipbroker.com>
> [24.196.79.163][127.0.0.1]
>
> Дело понятное. Тот, кто в Request URI, переадресовал sipbroker.com
> на SIPNET. Вызов локальный, "From" чужой, auth неприменим.
> Дальше -- по вкусу. Переадресация на городской номер, например.
> В зависимости от настройки системы доступа оно пройдет или не пройдет.
> Но если пройдет -- концов не сыщешь. Даже не в этом дело.
>
> Просто интересно, что приписать конкретный 200-INVITE решительно некому.
Да. Именно поэтому тащить CDR из традиционной телефонии в настоящую - можно только тогда, когда все "сервисы" - это "дать Васе дешево позвонить Даше". И то, пока Вася не додумался, как подделывать From хедера.

Посему выход - делать все общение с PSTN через gatewaycaller (или какой другой applicaiton), и там все аккуратненько билить и разрешать-запрещать.

Заметьте, Герман, что это совершенно всё равно, что стоит с другой стороны gatewaycaller - тупой Сискин gateway или Ваш прекрасный прокси с гейтвеями по всему миру. Потому что тут решается не только проблема тупости и нестандартности протокола на гейтвее, а проблема аутентикации и прочего - что доступно только тому серверу, на котором все эти аккаунты есть, и который может разные диалоги дернуть на предмет "а ну-ка, докажи мне, что это правда ты" - в тот момент, когда надо, а не когда уже захотелось.

Вот Вам пример из прошлого письма. Из PSTN позвонили Васе. Звонок НЕ аутетифицирован. Можно, конечно, сказать, что если мы позвонили на account vasya (взяв его registration), то с той стороны ответивший - точно Вася, но это не всегда правда (Васины сеттинги могут все звонки автоматом по понедельникам перенаправлять на Петю, потому что у Васи по понедельника похмелье). И теперь Вася (или кто там с той сторны) хочет этот PSTN звонок перефорвардить на Катю. А Катя, так уж вышла, доступна вербально исключительно через мобильник, то есть - трансферить надо на PSTN, а это (пока) - деньги. Которые с Васи надо взять. Но сначала надо убедиться, что это - Вася.

Вася прислал внутри диалога с PSTN REFER на Катю. Диалог не аутетицирован (это не Вася звонил, это ему позвонили). Поэтому надо Васю дернуть "обзовись, что это ты". Но возвращать 401 на REFER - совсем некузяво, многие клиенты такой романтики не поймут. Зато вот какой момент - прежде чем выдавать REFER любой хороший клиент сначала текущий разговор поставит на Hold. А это - reINVITE. Который мы спокойненько можем отрубить с 401, заставив Васю доказать, что это он. И потом со спокойной совестью мы принимаем REFER и выдаем INVITE туда, куда сказали (на Катю). При этом в From: этого INVITE - имя-номер того, кто Васе позвонил, а в authenticated поле - Вася@наш.домен.

Далее, после обработки регистраций Кати, оказывается, что у ней все заредирекчено на +79105551212 - и оно зарутилось на PSTN. А весь PSTN - routed в gatewaycaller application. Который радостно проверил, аутентицирован ли звонок (нет - отсылает, 401 - "назовись, кто ты на самом деле"). У нас все хорошо, в INVITE (во внутреннем представлении, ни в SIP пакете - тут никаких SIP нету пока, после приема Васиного REFER) - в INVITE есть аутентикация - Вася@наш.домен.

gatewaycaller радостно лезет в этот аккаунт, вынимая всё, что ему надо из Васиных потрохов - например, имя gateway-я, через который должны идти звонки от Васи (в Вашем случае, Герман, - какие-то сеттинги "тарифного плана" - которые потом можно в виде хедеров передать в INVITE на Ваш "VoIP proxy" - для рассылки на нужные гейтвеи), и так далее. Тут и биллинг, и шмилинг, и что угодно. И наконец - оно создает вторую ногу и ею звонит туда, куда сказали.

А вот если пытаться этот биллинг делать наружи, в гейтвеях, то оно, конечно, получится, но не очень. Точнее, оно получится, но через тот же gatewaycalling - который будет просто в виде спец. хедера вставлять в запрос authenticated name - а gateway будет ему тогда свято верить (можно, если gateway берет запросы только от CGatePro и только со специальным хедером-паролем), и сам делать биллинг. Но для этого гейтвей должен иметь базу пользователей с планами, и прочими штуками - а для этого можно использовать сам CGatePro. А чтобы не лазить к нему через CLI - делать этот биллинг прямо в gatewaycaller программе.

Вот в таком вот аксепте...

> --
>
> Герман Мызовский,
> Tario Communications.

Sincerely,
Vladimir Получено Sat Feb 04 07:41:51 2006

Этот архив был сгенерирован hypermail 2.1.8 : Tue 21 Feb 2006 - 03:18:03 MSK