Схема звонка такая: PSTN --> Cisco --> SoftSwitch --> Абонент
Задача - логировать и входящие и исходящие звонки. В биллинге завожу в качестве НАС только софтсвич со сл. конфигом
Код:
service=9
auth.in=all/all
auth.out=all/all
acct.in=voip/originate
acct.out=voip/answer
В конфиге модуля
Код:
findmode.0.title=Поиск по User-Name=LOGIN
findmode.0.value=User-Name=LOGIN
findmode.1.title=Поиск по User-Name=ALIAS
findmode.1.value=User-Name=ALIAS
findmode.2.title=Поиск по Calling-Station-Id=ALIAS
findmode.2.value=Calling-Station-Id=ALIAS
findmode.3.title=Поиск по Called-Station-Id=ALIAS
findmode.3.value=Called-Station-Id=ALIAS
#
find.order=0,1,2,3
Абонент регится на софтсвиче с типом логина см. на скрине под алиасом 7xxxxxx9513. Все звонки с цыски - это по любому (в моей схеме) входящий звонок для какого то абонента, поэтому в скрипте предобработки НАСа ставлю "руками"
Код:
request.setFlag( 2 );
request.setOption( "find.mode", 3 );
т.е. это входящий звонок и логин искать по Called-Station-Id=ALIAS. И биллинг находит абонента, пишет в базу ему звонок с указанием что это действительно входящий, за исключением одного НО: похоже баланс не проверяется и можно позвонить этому абоненту даже если у него отрицательный баланс или плюс к тому еще и договор не активен, или плюс к тому что статус логина - запрещен. Регистрация юзеру разрешена в любом случае если правильные логин/пароль (для того чтобы мог звонить по экстренным номерам и нам в офис, а также мы ему тоже могли звонить).
Собственно вопрос - при типе звонка "Входящий" - все эти параметры (баланс, статус договора, статус логина) не проверяются чтоли или я что-то делаю не так?
Привожу лог звонка - явно видно что выдается Access-Accept только с return-code=0, и никаких др. атрибутов, про которые говорится в доке.
Код:
11-07/22:28:15 INFO [rdsLstnr-p-3-t-1] RadiusListenerWorker - REQUEST:
Packet type: Access-Request
Identifier: 60
Authenticator: {B2 02 C3 70 E0 CF 8E 1E 73 7C C9 30 C1 53 F3 2D}
Attributes:
User-Name=x.x.x.14
User-Password=111
NAS-IP-Address=x.x.x.19
Service-Type=1
Acct-Session-Id=878f241f-2f-423823f3
Calling-Station-Id=7xxxxxx8308
NAS-Port-Type=0
Called-Station-Id=7xxxxxx9513
cisco-avpair=h323-call-id=2DFC8B98 281E11E2 BB038B65 1AC8C97A
cisco-avpair=h323-gw-address=x.x.x.14
cisco-avpair=h323-incoming-local-address=x.x.x.19
cisco-avpair=h323-remote-id=x.x.x.55
h323-gw-id=x.x.x.14
h323-remote-address=x.x.x.55
h323-setup-time=22:28:15.000 KRAT Wed Nov 07 2012
h323-conf-id=2DFC8B98 281E11E2 BB018B65 1AC8C97A
11-07/22:28:15 INFO [rdsLstnr-p-3-t-1] NasScript - REQUEST_AFTER_SCRIPT:
Packet type: Access-Request
Identifier: 60
Authenticator: {B2 02 C3 70 E0 CF 8E 1E 73 7C C9 30 C1 53 F3 2D}
Attributes:
User-Name=x.x.x.14
User-Password=111
NAS-IP-Address=x.x.x.19
Service-Type=1
Acct-Session-Id=878f241f-2f-423823f3
Calling-Station-Id=7xxxxxx8308
NAS-Port-Type=0
Called-Station-Id=7xxxxxx9513
cisco-avpair=h323-call-id=2DFC8B98 281E11E2 BB038B65 1AC8C97A
cisco-avpair=h323-gw-address=x.x.x.14
cisco-avpair=h323-incoming-local-address=x.x.x.19
cisco-avpair=h323-remote-id=x.x.x.55
h323-gw-id=x.x.x.14
h323-remote-address=x.x.x.55
h323-setup-time=22:28:15.000 KRAT Wed Nov 07 2012
h323-conf-id=2DFC8B98 281E11E2 BB018B65 1AC8C97A
Common options: {find.mode=3, call.type=2}
11-07/22:28:15 INFO [rdsLstnr-p-3-t-1] CostMapCache - (Re)loading costMap cache and geo codes for mid 5
11-07/22:28:15 INFO [rdsLstnr-p-3-t-1] RadiusListenerWorker - RESPONSE:
Packet type: Access-Accept
Identifier: 60
Authenticator: {2D D0 B6 DE F2 BF C7 A5 D0 2E ED 35 84 37 87 7F}
Attributes:
h323-return-code=0
Process time auth: 106
11-07/22:28:21 INFO [rdsLstnr-p-4-t-1] RadiusListenerWorker - REQUEST:
Packet type: Accounting-Request
Identifier: 60
Authenticator: {D3 2D DF 4A F4 93 CE 28 2E 26 D9 7E 3E 4B AE 06}
Attributes:
User-Name=x.x.x.14
NAS-IP-Address=x.x.x.19
Service-Type=1
Acct-Input-Octets=480
Acct-Output-Octets=16851
Acct-Status-Type=2
Acct-Delay-Time=0
Acct-Session-Time=0
Acct-Session-Id=878f241f-2f-423823f3OV1
Calling-Station-Id=7xxxxxx8308
NAS-Port-Type=0
Called-Station-Id=7xxxxxx9513
cisco-avpair=h323-remote-id=x.x.x.55
cisco-avpair=h323-call-id=2DFC8B98 281E11E2 BB038B65 1AC8C97A
h323-gw-id=x.x.x.14
h323-remote-address=x.x.x.55
h323-setup-time=22:28:15.000 KRAT Wed Nov 07 2012
h323-conf-id=2DFC8B98 281E11E2 BB018B65 1AC8C97A
h323-call-type=VoIP
h323-call-origin=originate
h323-disconnect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-connect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-voice-quality=0
h323-disconnect-cause=10
11-07/22:28:21 INFO [rdsLstnr-p-4-t-1] NasScript - REQUEST_AFTER_SCRIPT:
Packet type: Accounting-Request
Identifier: 60
Authenticator: {D3 2D DF 4A F4 93 CE 28 2E 26 D9 7E 3E 4B AE 06}
Attributes:
User-Name=x.x.x.14
NAS-IP-Address=x.x.x.19
Service-Type=1
Acct-Input-Octets=480
Acct-Output-Octets=16851
Acct-Status-Type=2
Acct-Delay-Time=0
Acct-Session-Time=0
Acct-Session-Id=878f241f-2f-423823f3OV1
Calling-Station-Id=7xxxxxx8308
NAS-Port-Type=0
Called-Station-Id=7xxxxxx9513
cisco-avpair=h323-remote-id=x.x.x.55
cisco-avpair=h323-call-id=2DFC8B98 281E11E2 BB038B65 1AC8C97A
h323-gw-id=x.x.x.14
h323-remote-address=x.x.x.55
h323-setup-time=22:28:15.000 KRAT Wed Nov 07 2012
h323-conf-id=2DFC8B98 281E11E2 BB018B65 1AC8C97A
h323-call-type=VoIP
h323-call-origin=originate
h323-disconnect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-connect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-voice-quality=0
h323-disconnect-cause=10
Common options: {find.mode=3, call.type=2}
11-07/22:28:21 INFO [rdsLstnr-p-4-t-1] RadiusListenerWorker - RESPONSE:
Packet type: Accounting-Response
Identifier: 60
Authenticator: {A4 D1 9E D4 40 55 93 72 8F 24 F3 63 4F 5A 59 85}
Attributes:
Process time stop: 20
11-07/22:28:21 INFO [rdsLstnr-p-4-t-2] RadiusListenerWorker - REQUEST:
Packet type: Accounting-Request
Identifier: 60
Authenticator: {40 1C 67 33 38 97 13 97 7E 51 AA 7F 32 FC 97 64}
Attributes:
User-Name=x.x.x.14
NAS-IP-Address=x.x.x.19
Service-Type=1
Acct-Input-Octets=17021
Acct-Output-Octets=448
Acct-Status-Type=2
Acct-Delay-Time=0
Acct-Session-Time=0
Acct-Session-Id=878f241f-2f-423823f3AV
Calling-Station-Id=7xxxxxx8308
NAS-Port-Type=0
Called-Station-Id=7xxxxxx9513
cisco-avpair=h323-remote-id=x.x.x.14
cisco-avpair=h323-call-id=2DFC8B98 281E11E2 BB038B65 1AC8C97A
h323-gw-id=x.x.x.55
h323-remote-address=x.x.x.14
h323-setup-time=22:28:15.000 KRAT Wed Nov 07 2012
h323-conf-id=2DFC8B98 281E11E2 BB018B65 1AC8C97A
h323-call-type=VoIP
h323-call-origin=answer
h323-disconnect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-connect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-voice-quality=0
h323-disconnect-cause=10
11-07/22:28:21 INFO [rdsLstnr-p-4-t-2] NasScript - REQUEST_AFTER_SCRIPT:
Packet type: Accounting-Request
Identifier: 60
Authenticator: {40 1C 67 33 38 97 13 97 7E 51 AA 7F 32 FC 97 64}
Attributes:
User-Name=x.x.x.14
NAS-IP-Address=x.x.x.19
Service-Type=1
Acct-Input-Octets=17021
Acct-Output-Octets=448
Acct-Status-Type=2
Acct-Delay-Time=0
Acct-Session-Time=0
Acct-Session-Id=878f241f-2f-423823f3AV
Calling-Station-Id=7xxxxxx8308
NAS-Port-Type=0
Called-Station-Id=7xxxxxx9513
cisco-avpair=h323-remote-id=x.x.x.14
cisco-avpair=h323-call-id=2DFC8B98 281E11E2 BB038B65 1AC8C97A
h323-gw-id=x.x.x.55
h323-remote-address=x.x.x.14
h323-setup-time=22:28:15.000 KRAT Wed Nov 07 2012
h323-conf-id=2DFC8B98 281E11E2 BB018B65 1AC8C97A
h323-call-type=VoIP
h323-call-origin=answer
h323-disconnect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-connect-time=22:28:20.000 KRAT Wed Nov 07 2012
h323-voice-quality=0
h323-disconnect-cause=10
Common options: {find.mode=3, call.type=2}
11-07/22:28:21 INFO [rdsLstnr-p-4-t-2] RadiusListenerWorker - RESPONSE:
Packet type: Accounting-Response
Identifier: 60
Authenticator: {EB 47 EE 24 F8 36 1E 1C D7 05 E0 C3 B4 D1 52 30}
Attributes:
Process time stop: 16