Re: cdr и прочее.

От: German Myzovsky <CGatePro_at_mx_ru>
Дата: Thu 02 Feb 2006 - 20:55:33 MSK

> Нахожусь в размышлениях, какой sip proxy поставить и пока что взгляд 

> упал на cgpro. Всем хорош, однако неясно, как биллить клиентов, которые
> будут через него звонить.

Биллить надо на сервере доступа или на станции. От CGatePro в поле From приходит гарантированно авторизованный user@domain. Этого достаточно для любого стандартного биллинга. Сервер доступа может доверять полю From и IP адресу CGatePro.

За одним исключением. Если клиент набрал не номер@domain, а номер@ip[:port], то Signal уйдет мимо любых правил Router'а. Авторизованному клиенту разрешен Signal Relay куда угодно, и запретить это практически невозможно, да и нельзя запрещать, по большому счету. Таким образом клиент может рассылать INVITE'ы куда попало, только уже не от своего имени, а от IP адреса CGatePro.

Когда Router говорит, что через Signal на номер@domain сервер доступа "А" принимает звонки только по России, а сервер "B" -- по Европе, клиент может всё это переиграть по-своему и бесконтрольно звонить на Кубу через номер@ip какой-нибудь ростовской станции (от вашего имени).

Разработчики CGatePro считают, что лицензиаты не должны заниматься продажей минут, поэтому правила формирования маршрутов Signal Relay имеют тот же синтаксис, что и для Mail Relay. Хотя известно, что серверы входящей почты редко берут деньги за local delivery, а серверы доступа SIP-PSTN, напротив, редко не берут. Короче, стоит позаботиться о том, чтобы все серверы доступа, которые доверяют IP CGatePro, всегда самостоятельно проверяли поле From.

> в логах об осуществленных звонках в CDR есть только invite и bye. OK 200 
> и ACK там нет. Соответственно непонятно, говорил человек или нет, и если 
> говорил, то сколько.

В CDR есть только 200-INVITE и 200-BYE. То есть как раз "200 OK". 200-INVITE вполне достаточно для определения начала разговора, потому что станция прислала серверу доступа CONNECT. Другое дело, если ACK не пришел, надо подождать-подождать, да и завершить разговор аварийно. Потому что отсутствие ACK предполагает как минимум одно из двух: -- UAC не получил "200 OK" + SDP, не узнал media ip:port и молчит; -- не сумев послать ACK, не сможет послать BYE и завесит звонок.

> Т.е. хочется, чтобы проксировалась сигнализация, а rtp ходило напрямую. 
> Если записи о соединениях в логах нет, потому что сигнализация не 
> проксируется, то это больше похоже на redirect сервер, а не на sip proxy.
> 
> Собсно, кто как обсчитывает звонки клиентов?

В Tario/SIPNET все потенциально денежные операции обсчитываются третьими приложениями вне зоны ответственности CGatePro. Парсер Settings/CDRs используется для быстрого выуживания проблемных звонков без 200-BYE, с десятью 200-BYE, с 4xx-BYE, без 200-INVITE (но с 200-BYE), с 5xx-INVITE и т.д. для последующего разбора полетов по большим логам.

External CDR Helper используется для опциональной записи бесплатных звонков между клиентами, и в данное время неактивен. Дело еще в том, что CDR учитывает сессии Windows Messenger IM, которые по воле MS начинаются/заканчиваются INVITE/BYE, отчего "голосовой" CDR может выглядеть прикольно.

-- 

Герман Мызовский,
Tario Communications.
Получено Thu Feb 02 17:55:35 2006

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:14:40 MSK