آخرین تغییرات IBSng
C Branch
تگ 372 تا 374 در تاریخ ۱۳۹۶/۰۵/۲۳
Feature: #1146 Add New Permission "CHANGE USER LIMIT MAC"
From now on, only admins with specified permission can modify the limit mac attribute of users. This permission has "CHANGE USER ATTRIBUTES" permission as it's parent.
Feature: #1462 add failed online reason to user information page
if there was a reason for failed online it will be shown on user information page .
Bugfix: #1417 Fix Load Balancing Functionality of IPPool Plugin
The `ippool_main.getLoader().getIPpoolByID` will return either an "IPPool" or "LoadBalancingIPPool" object. In later case the object has no `getContainer` method. Instead we use `setIPInPacket` method which is available in both objects and has the same functionality.
Feature: #1317 Add ISP Filter to `getListOfCharges` Charge Action
Feature: #1317 Add ISP Filter to `getListOfGroups` Group Action
Bugfix :#1436 change QOS defs propertis to accept string input
Bugfix :#1424 real time bw graph timeline problem
time line problem solved using utc time guide.
Improvement: don't log wrong password
Bugfix: #1367 search_expired_user.php check_all_users problem
multi select problem for users has been handled.
Bugfix: #1408 Port call_id_blacklist plugin to C branch
Fix: Show Exact Value for ISP's on Online Users
Feature : #1361 change the sub service qos name to limited drop down
change the sub service qos name to limited drop down options .
Feature : #1360 edit charge priority from 1-10 to 1-50
edit charge priority to 1-50 and it's backend error and validation rules.
تگ 371 تا 372 در تاریخ ۱۳۹۶/۰۳/۲۳
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
- Bugfix: #1292 Fix Bulk Kill Action in Case of Choosing More Than One Group
When user chooses more than one group/isp/etc in Search User panel and selects bulk kill action it raises and error. It was because of invalid format of passing parameters.
- Bugfix: Fix Minor Typo Error
- Bugfix: #1235 Fix Minor Invoicing DB Bug
Column reference to 'pi_issue_date' was ambiguous!
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
Resolving 'max_rule_time_usage' charg rule to be read from user custome field (e.g: 'F:time') haven't been handled.
- Bugfix: #1215 Fix Timezone Issue in Online Graph
تگ 360 تا 371 در تاریخ ۱۳۹۵/۱۲/۱۰
- Bugfix: Fix Active Leaves
The `getActiveLeaves` method must be called in 'MAIN' process.
- BugFix: Various Internal Relogin fixes
- Improvement: Make sure listen loop won't exit on an abnormal exception
- BugFix: Setting max rule traffic usage value as a float in custom fields would have break max rule traffic plugin
- Improvement: Disable Partitioning Check Contraints
This is done because of some efficiency issues
- BugFix: We should ignore negative threshold when QV is passed to cisco isg
- BugFix: A mid session reauthorize after a restart will create an instance without start accounting
- BugFix: Do not panic if charge rule is None during stop session
- BugFix: Not saving user after logout will lead to inconsistent user object
- BugFix: Take credit limit into account when calculating remaining bytes. This fixes postpaid user problem with isg prepaid services
- Improvement: Kill max delay default value was too large. Set it to 2 hours by default
- Improvement: Make auth rate control optional and turn it off by default
- Bugfix: #1449 Fix `users.group_id` Bug
Fixed `getDBColName` in a way which returns the part after the dot, e.g 'usersgroup_id' => 'group_id'
- Bugfix: #1449 Fix Ambiguous Fields `user_id` and `group_id` in Management Summary Report
After adding two columns `user_id` and `group_id` to `connection_log` table it created a conflict with `users` table on in management summary queries; in this fix we change SQL queries to exactly specify which fields we mean by `user_id` and `group_id`: `users.user_id`, `users.group_id`, etc.
- Bugfix: add missing function call on commit of periodic acc plugin
- Bugfix: #1503 Fix MAC Extraction From RAS of ZTE Type
ZTE model rases change the format of user mac address in recent framework update, e.g: old format: `78d99fd34e4b` new format: `78:d9:9f:d3:4e:4b`
- Improvement: Few logging for radius process
- BugFix: Reauthorize bytes were deducted twice from remaining bytes
- BugFix: Do not start accounting on reauthorize. Removes lots of nagging about online dic not found in error log
- Improvement: Make sure we never return a quota of 0 in case of a successful reauthorize
- Improvement: Run internal relogin with same priority as auth. Long queues might cause WS request to return while task has not been done yet
- BugFix: reauthorize_used_bytes should be used bytes from last update and not from start of session. Fixed premature QV0 while user still has credit.
- Bugfix: don't assign ip to sub service
- Bugfix: skip users without ignore_ras
- Feature: Add support for cisco_isg_max_reauthorize_mbytes and cisco_isg_max_reauthorize_minutes attributes to force reauthorize after a certain threshold
- Feature: Multiple prepaid services per account support
- BugFix: Max Rule Traffic Usage were not working correctly with multiple rules sharing one value (and custom field) and multiple instances using them
- BugFix: Onlines table in single user info page were became messed up after first ajax based refresh
- BugFix: Multi login did not work with Multi Service rases other than ISG
- Bugfix: #1452 Fix/Update Deprecated Links in Graph Menu
The following links are deprecated and removed: All Realtime Graph Internet Realtime Graph Voip Realtime Graph BW Realtime Graph Also updated modified links
- Improvement: Failure to change sub services (ex. failed COA) should be detected. Also resync services after internal relogin to make sure we have correct services
- Bugfix: #1136 Fix Name of Import File in Import User Menu
Note: after changing the log process to pass the logging mechanism to python syslog module, user_import logs won't be written to a local file which will cause to "View Import Log" link on "Import User" page after uploading CSV file won't work. this can be fixed by adding new log type (aside `QueueLogger` and `DirectLogger`) to IBS logger module, but this is not a priority now; look at the comments on changed files for more info.
- Bugfix: cast ignore ras ids to int
- Bugfix: read min/max event time directly from defs
- Bugfix: fix group usages of connection analysis
- Improvement: Remove `price` Filter From User ID Attribute
- Feature: Add User ID Attribute to Search User Page
- Feature: optionally do autoRenew on abs expired user
- Bugfix: log deposit_type in deposit change
- Cleanup: clean md5 response
تگ 360 در تاریخ ۱۳۹۵/۱۰/۲۹
- Bug Fixes
1. Re-Onlined users might have get failed status due to left over from previous sessions
2. Radius Attributes with integer values were not working in charge rule attribute radius
3. Removed Extra print
4. Incorrect call to getUserAttrs caused exception
5. Some initial variables where missing in configuration file and advanced configuration
6. Undefined session raised unnecessary exception
7. Threshold Bytes/Seconds did not trigger internal reauthorize due to bad merge
8. Second username change fail in case of internal relogin
- Improvement
1. Allow Acct-Interim-Interval to be passed to failed users
2. Exception handling for internal relogin
3. API cleanups for cisco isg rases
4. get method for SNMP client
تگ 359 در تاریخ ۱۳۹۵/۱۰/۲۹
Bugfix: fix internal relogin answer to main proc
Bugfix: Race condition might cause internal relogin to fail
Bugfix: Autorenew would fail if user has next group and current group does not have group_credit
Bugfix: fix limit port binding
Bugfix: fix periodic acc failed login
Bugfix: fix non-working periodic accounting plugin
Bugfix: Some mikrotik devices send mschapv2 flags as non-zero which is not compliant by standard but leads to wrong passwords
Improvement: add zero credit limit to search user
Bugfix: Make sure we never get blocked infinitely in relogin process
Bugfix: Do not fetch in/out bytes in case accounting not started to prevent lots of nagging about online dic not found with ISG prepaid services
Cleanup: Internal Relogin Cleanups
Bugfix: Try to retry query in case of deadlock
Feature: Add PubSub to Extra Charge and MC Modules
Improvement: Allow relogin to be called in blocking mode, so caller will not return until relogin is finished
Bugfix: Race condition caused internal relogin to raise error
Feature: add a plugin to ignore checking limit port based on incoming ras
Bugfix: Internal Relogin were not working correctly with multiple concurrent requests
Bugfix: Threshold might not be defined in session yet
Bugfix: ChangeCredit Set and AutoRenew was not working with new Internal Relogin
Bugfix: Internal Relogin support for changeCredit, updateUserAttrs and setOneChargeRuleUsage to prevent incorrect calculations during online sessions
Bugfix: Clear internal reauthorize threshold, if it is not required anymore
Bugfix: Renew should be called while user instances has been temporarily logged off
Bugfix: Length of DummyPacket were not working
Bugfix: Critical bug in new sub services which caused partial logs not to work properly
Bugfix: allow God admin to send SMS
Bugfix: ignore updating None user object
Feature: Ability to fetch ip-to-mac mapping from a redis database
Bugfix: default value for field references
Bugfix: set online status base on online layout data
Bugfix: up/down cpmb doesn't support field value
Bugfix: hide negative acct not started (business care, we should fix root cause in core)
Bugfix: fix getting charge rule value from user
Bugfix: fix night-free extra charge
Bugfix: fix active leave list
Bugfix: fix setting attribute field in max_rule_traffic_usage
Bugfix: Various new ISG service fixes
Improvement: Log traceback if an online session dictionary has been found
Bugfix: wait for reload after creditChange
Bugfix: ISG Minor Fixes
Bugfix: fix non-working script to recreate bw tree
Feature: Add charging name and qos name to service definition of charge rules
Bugfix: Prevent error if we receive a slave stop accounting without having a session on master isg ras
Cleanup: Cleaned up redis backend section of configuration file
Improvement: Better error handling of expired ras storage dict items
Bugfix: ACS2 ras unique ids were changing for every call. Changed it to use authenticator of incomding packet instead
Bugfix: dhcp attributes should be available in slave aps as it might have individual dhcp ippools
Bugfix: Delete and ttl method of ras storage were not working
Bugfix: Cisco ISG fixes to work with new redis based ras storage
Bugfix: Delete and ttl method of ras storage were not working
Bugfix: fix bulk user deposit
Feature: show charge rules of each service in separate tab
Bugfix: fix non-working home graphs again, issue #1190
Bugfix: DHCP IP assignment was not working correctly if multiple online workers were used
Bugfix: fix graphs in interface (replace realtime stuff), issue #1169
Bugfix: add unique id to ras_msg
Bugfix: Peridic Notification: Credit rule: behave like user plugin Check for AUTO RENEW and AUTO RECHARGE eligibilty before sending notification
Bugfix: Cisco ISG bandwidth attributes were reverse
Improvement: Optimized event for better response time
Improvement: Cisco ISG IP EAP Send account logon on receive of a session start event
Improvement: When syncing subscriber services on cisco ISG only deactivate/activate services which has been changed.
Improvement: Better calculation of ISG bandwidth bursts
Bugfix: Session Dict for Primay service were not created on start accounting
Bugfix: Multiple fixes in cisco ISG EAP ras
Improvement: Use redis ttl instead of iterate and cleanup
Bugfix: Fixed Typo in log console
Bugfix: Minor fixes and cleanups
Bugfix: Change Service with empty service list should not be sent
Improvement: Log activated services in log console while authenticating
Bugfix: Fixed conflicting attributes between mvts and cisco
Bugfix: If user was re-online after rule change occured, we would have never switch services. Current approch will sync services upon re-online using cisco isg session query
Feature: Switched ras storage from lmdb to redis
Bugfix: EAP ras state dictionary was growing without bound
Bugfix: user disconnecting from slave ap should trigger logout on ISG ras
Bugfix: Service kill should deactive service
Bugfix: Reonline of new enhanced services were not working correctly
Bugfix: COA log console were not written
Bugfix: log console were not written for change service
Improvement: Do Deactivate and activate coa requests in a single packet
Improvement: Enhanced services tested
Feature: Initial support for enhanced services
Bugfix: Internal Reauthorize were not working in ISG rases
Bugfix: Can stay runner were not working properly
Bugfix: internet reauthorize was not using can stay runner
Bugfix: Reauthorize packet on cisco 10k series does no pass any cisco-avpair
Bugfix: Service kill did not initiate master session kill
Bugfix: Fixed half written partials caused duplicated deletion processs which might not be necessary
Bugfix: Fixed Typo
Improvement: Various minor enhancements
Improvement: Killing a service in POD style should KILL parent session
Bugfix: Minor cisco ISG fixes
Feature: Add cisco_isg_ios_software cisco attribute with options IOS and IOSXR
Bugfix: Fixed typo which might cause prepaid reauthorize to fail before credit finish
Bugfix: Fixed reauthorize after a restart might cause incorrect values in ras storage
Improvement: Renamed remaining secs to next event secs to clarify the value
Bugfix: Cisco isg prevent avalanche for tarriff change reauthorizes
Improvement: Improved timing to prevent run/shm from filling up
Improvement: Prevent XSS
Bugfix: Fixed reauthorize caused session to be overwritten
Improvement: Better online session timings to prevent run/shm from filling up
Bugfix: Fixed typo
Improvement: Reauthorize used bytes are passed as total used bytes in this session
Feature: Only god admins are allowed to call runDebugCode
Improvement: Enhancements to radius server
Bugfix: More Cisco ISG Fixes
Improvement: Online user count now separate services from master sessions
Bugfix: Fixed reauthorize credit finish were not working
Improvement: Cisco ISG refactoring to improve code reusability
Bugfix: fix failed login
Feature: Log sub service in log console
Improvement: Sub services should not allocate ip addresses
Improvement: Enhanced remaining seconds calculations
Bugfix: Fixed error message
Bugfix: Fixed ISG change bw were not working
Improvement: Use threshold bytes instead of remaining for cisco isg remaining quota
Improvement: Decreased maximum reauthorize time to 4 hours and 1GB
Bugfix: ISG Fixes
Bugfix: Fixed Cisco ISG ras did not delete some ras storage data leading to full /run/shm
Feature: Added support for method beforeDeleteSessionDict to RasPacketHandler
Bugfix: Fixed Cisco ISG does not allow volumes more than 4GB
Feature: Added saveDecodedData method to be able to manually commit decoded data changes (ex. EAP ras)
Bugfix: Fixed update services is not needed on re-online
Bugfix: Fixed ras msgs without service points to Master session
Bugfix: Cisco ISG fixes for prepaid services
Feature: Allow changing of accounting list in ISG
Improvement: Moved common cisco isg methods into a base class, Cisco isg Portal ras
Bugfix: Cisco ISG Ras Fixes
Bugfix: Cisco ISG PPP Fixes
Feature: Send username during COA
Bugfix: Cisco ISG Ras Fixes
Bugfix: Cisco ISG Slave AP ras to overcome weird behaviour of cisco isg on radius proxy+dhcp configuration
Improvement: Removed testing code form isg ip
Feature: Cisco ISG IP EAP with IBS assigned dhcp addresses and dhcp initiator
Feature: Added real time notification default
Bugfix: Fixed items were returning all lmdb items instead of just target dict
Bugfix: Fixed maclib to support more formats
Improvement: Better debugging
Improvement: Better logging
Improvement: Turned off debug by default
Bugfix: New Plugin API fixes
Bugfix: Fixed unresolved conflict
Bugfix: Fixed syntax error
Bugfix: Fixed conflict between service accounting and prepaid services
Bugfix: Fixed Typo
Bugfix: Fixed a race condition which might cause ISG user service not to accept
Bugfix: Fixed peap inner identifiers were incorrect
Bugfix: EAP Ras Fixes to conform RFC
Bugfix: Fixed tariff change flag were not working
Bugfix: ISG IP EAP Ras Fixes
Cleaup: Removed merge leftovers
Bugfix: Fixed indentation errors caused by merge
Bugfix: Fixed COA attributes were not passed correctly
Bugfix: Fixed primary service passed serveral times
Feature: Reauthorize and tariff change support in charge plugin
Bugfix: Fixed multiple typos
Feature: Added a link pointing on how to create cert files
Bugfix: Fixed multiservice on isg ip eap
Feature: EAPCalc added in addons
Bugfix: Fixed tls keys should be optional
Improvement: Sample config for cisco isg ip eap
Feature: Cisco ISG IP EAP Ras Support
Improvement: EAP Ras Minor Enhancements
Improvement: Minor Enhancements
Improvement: Charge rule cache enhancements
Bugfix: Fixed Reauthorize requests should not create a new session
Bugfix: Fixed Typo
Bugfix: More EAP Fixes
Bugfix: Fixed cisco isg service sessions were initiated in no start accoungint state
Bugfix: Fixed re-online multilogin wasn't correctly work due to subservices
Improvement: Better Logging
Bugfix: Fixed mac and port were not shown correctly
Bugfix: Cisco ISG Fixes
Feature: Cisco ISG PPP Ras in new ras branch
Feature: Added showing sub-service in user info online session layer and connection log
Bugfix: More cisco ISG Fixes
Feature: Added support for cisco ISG services
Improvement: Cisco ISG PPP Enhancements
Feature: Cisco ISG PPP Ras
Feature: In RAS BW for Cisco ISG
C_staging Branch
تگ 371 تا 372 در تاریخ ۱۳۹۶/۰۳/۲۷
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
- BugFix: reloadUser without wait for lock caused infinite loop
- BugFix: Online User Storage must be flushed during IBSng start up
- Cleanup: Cleaned up check online method
- BugFix: Fixed reloadUser might incorrectly run while lock has not been acquired
- BugFix: Redis might incorrectly reset pubsub in busy situations
- BugFix: Credit Limit was displayed incorrectly
- BugFix: Mutable object should not be passed as default argument
- BugFix: Fix Relogin User Issue On Update Custom Field
- BugFix: Fix Relogin User Issue On Update Custom Field
- Bugfix: #1292 Fix Bulk Kill Action in Case of Choosing More Than One Group
When user chooses more than one group/isp/etc in Search User panel and selects bulk kill action it raises and error. It was because of invalid format of passing parameters.
- BugFix: mp observer change in isp loader caused isp states to reset
- BugFix: unload/load instead of reload causes race condition where isp object is no longer available
- BugFix: Online user storage were using incorrect redis db
- Bugfix: #1235 Fix Minor Invoicing DB Bug
- Bugfix: #1235 Fix Minor Invoicing DB Bug
Column reference to 'pi_issue_date' was ambiguous!
- BugFix: Kairos might be initialized incorrectly because system redis library was imported instead of local one
- Cleanup: Remove Unused Method `__renewMustResetCredit`
- BugFix: Kairos might be initialized incorrectly because system redis library was imported instead of local one
- BugFix: Fixed Typo which cause isp deposit role back not to work correctly
- BugFix: __internetReauthorizeCheckForIncorrectSubService was not working due to typo
- BugFix: Fix memory leak of web service process by replacing cyclic-reference-creator collections.OrderedDict with odict.odict in kairos library
- BugFix: Consume ISP deposit was broken after Internal Relogin. Fix to always reload ISP and log after consuming deposit.
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
Resolving 'max_rule_time_usage' charg rule to be read from user custome field (e.g: 'F:time') haven't been handled.
- BugFix: Duplicate detector was not caching reply packets and never replay them
- Bugfix: #1215 Fix Timezone Issue in Online Graph
- Improvement: Log next event and kill dict in can stay event of log console
- BugFix: Prevent maximum threshold minutes might have caused avalanche situtation, causing cisco ISG bras to overload
- BugFix: Use Acct-Session-Id in kick user via coa instead of Cisco-Account-Info
- BugFix: Internal relogin cleanup and bug fixes
- Improvement: Increased default max thresholds to decrease the load on ras and ibs
- Cleanup: Change RAS Name 'Wireless' to '4ipnet'
- Cleanup: SOAP Cleanup
- Feature: add send_lock_users capability to notification rules
تگ 369 تا 371 در تاریخ ۱۳۹۵/۱۲/۱۰
- Bugfix: Fix Active Leaves
The `getActiveLeaves` method must be called in 'MAIN' process.
- BugFix: We should not add internal_relogin flag to user attributes
- BugFix: Various Internal Relogin fixes
- Improvement: Make sure listen loop won't exit on an abnormal exception
- BugFix: Setting max rule traffic usage value as a float in custom fields would have break max rule traffic plugin
- Bugfix: fix delete notification bug
- Improvement: Disable Partitioning Check Contraints
This is done because of some efficiency issues
- Improvement: Disable adding check constraint to partitioned tables
- BugFix: We should ignore negative threshold when QV is passed to cisco isg
- BugFix: A mid session reauthorize after a restart will create an instance without start accounting
- BugFix: Do not panic if charge rule is None during stop session
- BugFix: Not saving user after logout will lead to inconsistent user object
- BugFix: Take credit limit into account when calculating remaining bytes. This fixes postpaid user problem with isg prepaid services
- Improvement: Kill max delay default value was too large. Set it to 2 hours by default
- Improvement: Make auth rate control optional and turn it off by default
- Bugfix: #1449 Fix `users.group_id` Bug
Fixed `getDBColName` in a way which returns the part after the dot, e.g 'usersgroup_id' => 'group_id'
- Bugfix: #1449 Fix Ambiguous Fields `user_id` and `group_id` in Management Summary Report
After adding two columns `user_id` and `group_id` to `connection_log` table it created a conflict with `users` table on in management summary queries; in this fix we change SQL queries to exactly specify which fields we mean by `user_id` and `group_id`: `users.user_id`, `users.group_id`, etc.
- Bugfix: #1449 Fix Ambiguous Fields `user_id` and `group_id` in Management Summary Report
After adding two columns `user_id` and `group_id` to `connection_log` table it created a conflict with `users` table on in management summary queries; in this fix we change SQL queries to exactly specify which fields we mean by `user_id` and `group_id`: `users.user_id`, `users.group_id`, etc.
- Bugfix: add missing function call on commit of periodic acc plugin
- Bugfix: Add `disabled` Column to `online_payment_gateway` Table
- Bugfix: #1503 Fix MAC Extraction From RAS of ZTE Type
ZTE model rases change the format of user mac address in recent framework update, e.g: old format: `78d99fd34e4b` new format: `78:d9:9f:d3:4e:4b`
- Improvement: Few logging for radius process
- BugFix: Reauthorize bytes were deducted twice from remaining bytes
- BugFix: Do not start accounting on reauthorize. Removes lots of nagging about online dic not found in error log
- Improvement: Make sure we never return a quota of 0 in case of a successful reauthorize
- Improvement: Run internal relogin with same priority as auth. Long queues might cause WS request to return while task has not been done yet
- BugFix: reauthorize_used_bytes should be used bytes from last update and not from start of session. Fixed premature QV0 while user still has credit.
- BugFix: Fixed bad commit
- Bugfix: #1449 Fix `users.group_id` Bug
Fixed `getDBColName` in a way which returns the part after the dot, e.g 'usersgroup_id' => 'group_id'
- Bugfix: don't assign ip to sub service
- Bugfix: use ippool interface method fix #1468
- Bugfix: skip users without ignore_ras
- Feature: Add support for cisco_isg_max_reauthorize_mbytes and cisco_isg_max_reauthorize_minutes attributes to force reauthorize after a certain threshold
- Feature: Multiple prepaid services per account support
- BugFix: Max Rule Traffic Usage were not working correctly with multiple rules sharing one value (and custom field) and multiple instances using them
- BugFix: Onlines table in single user info page were became messed up after first ajax based refresh
- BugFix: Multi login did not work with Multi Service rases other than ISG
- Bugfix: #1452 Fix/Update Deprecated Links in Graph Menu
The following links are deprecated and removed: All Realtime Graph Internet Realtime Graph Voip Realtime Graph BW Realtime Graph Also updated modified links
- Improvement: Failure to change sub services (ex. failed COA) should be detected. Also resync services after internal relogin to make sure we have correct services
- Bugfix: #1136 Fix Name of Import File in Import User Menu
Note: after changing the log process to pass the logging mechanism to python syslog module, user_import logs won't be written to a local file which will cause to "View Import Log" link on "Import User" page after uploading CSV file won't work. this can be fixed by adding new log type (aside `QueueLogger` and `DirectLogger`) to IBS logger module, but this is not a priority now; look at the comments on changed files for more info.
- BugFix: Re-Onlined users might have get failed status due to left over from previous sessions
- BugFix: Radius Attributes with integer values were not working in charge rule attribute radius
- Improvement: Allow Acct-Interim-Interval to be passed to failed users
- Improvement: Exception handling for internal relogin
- Bugfix: Incorrect call to getUserAttrs caused exception
- BugFix: Some initial variables where missing in configuration file and advanced configuration
- BugFix: Undefined session raised unnecessary exception
- Improvement: API cleanups for cisco isg rases
- Bugfix: cast ignore ras ids to int
- Bugfix: read min/max event time directly from defs
- Improvement: Add Sample Configurations for Work Queue, Pub/Sub and Topic
Also did some modification to broker module to work with different configurations
- Bugfix: fix group usages of connection analysis
- Improvement: Add Abstraction Layer Over BrokerFactory for Connection Handler
- Improvement: Add Open Channel Callback Function
Some initialization should be done after channel opened in non-blocking mode. Also add some add callback function to be able to define callbacks after conneciton initiation
- Improvement: Remove `price` Filter From User ID Attribute
- Feature: Add User ID Attribute to Search User Page
- BugFix: Threshold Bytes/Seconds did not trigger internal reauthorize due to bad merge
- Feature: Add RabbitMQ Broker
- BugFix: Second username change fail in case of internal relogin
- Improvement: get method for SNMP client
- Bugfix: fix edit invoice rule
- Bugfix: fix online payment
- Bugfix: fix editInvoiceProfile
- Bugfix: fix add/update extra charge profile
- Improvement: Apply Post Rotate Script With Each Rotate
- Improvement: Apply Standard Format to Shahkar Output Files
- Feature: Add ShahakrID and CodeMelli to Shahkar Log
- Feature: Add ShahkarID and CodeMelli to User Attrs
These attributes added to 'Comment' section of user attributes
- Improvment: Change Default CSVStorage Splitter and Make PyTables Logging of Radius Server Optional
- Feature: Add CSVStorage to Log Module
Also changed 'Shahkar' module to use CSVStorage instead of PostgreSQLStorage
- Bugfix: fix auto_recharge_ignore_deposit flag
- Bugfix: fix typo in checking charge usage
- Feature: add group and before credit to connection_log attrs
- Feature: implement rabbitmq interface
- Bugfix: fix failed login for limit port/mac and password)
- Feature: md5 digest
- Bugfix: fix coordinate in shahkar log
- Feature: wireless ras
- Feature: try to get ap_name and coordinate from instance attrs
- Feature: new plugin (autoRenew requires next group)
- Bugfix: fix handling empty/None ras_ids in log console
- Bugfix: fix and complete write/read group and before_credit in connection logs
- Bugfix: convert console buffer to list
- Feature: show kill reason in connection log of user panael
- Bugfix: fix adding msg to buffer
- Bugfix: fix sending ras_loader
- Feature: Save Radius Log in PyTables Structure
- Feature: MC: add 'armaghan' SMS provider, issue #729
- Cleanup: User Location: remove SOAP handler (Location should be removed completely)
- Bugfix: User Import: fix KeyError and cleaning in user_import_actions: __updateImportingStats
- Bugfix: TG: User Import: wrong arguments order in re.sub
- Bugfix: TG: User Import: NameError
- Cleanup: C_invoice_dev: remove Invoice SOAP handler and all WSDL methods (models are there), migrated to JSON-RPC
- Feature: C_invoice: add config param 'change_service_share_isp_groups', used in getServiceSelection
- Bugfix: adapt pytables with new C branch
- Bugfix: SOAPModel: vales with type 'long' were skipped when converting to dict
- Bugfix: SOAPModel: vales with type 'long' were skipped when converting to dict
- Cleanup: remove extra_charge_soap_handler.py, migrate to JSON-RPC
- Doc: fix docstring in voucher_handler.py
- Doc: fix docstring in extra_charge_soap_handler.py
- Bugfix: C_dev: templates: fix again in KILL and CLAER perms, online_users_js.tpl
- Bugfix: fix commit 04111c, related to KILL USER and CLEAR USER again, #940
- Bugfix: C_invoice: service_price plugin: remove checkInput methods, issue #1121
modifying group's service price and extra traffic options by non-GOD admin is not working permission checking (CHANGE GROUP and CHANGE USER ATTRIBUTES) has been done before
- Feature: Online Payment: add 'Disable' property to Gateway
- Improvement: add JSON-RPC method getGatewayInfo, use it in TG
- Bugfix: allow using user attr 'A:<attr-name>' in charge rule attributes
- Bugfix: C_dev: call transactionFinished in finally block
- Cleanup: C_dev: user_actions.py: yet more cleaning
- Cleanup: C_dev: user_actions.py: more cleanings
- Cleanup: C_dev: user_actions.py: rechargeUsers
- Feature: add flag auto_renew_ignore_deposit: cherry-picked in C_dev
- Cleanup: C_dev: rewrite reset credit / trash remaining decision logic
- added isp names and group names select as general ibs widgets
- Bugfix: irrelevant perm check in bw.getAllLeafNames
- remove realtime graphs & old php image-based graphs, fix timezone bug #888, #1051
- Feature: add user/group flag: Renew Do Not Reset Charge Rule Usage
- Bugfix: fix NameError in core/user/plugins/enable_failed_login.py: NoSectionError
- Feature: C_dev: Notification: add message_type == user_event
insert directly to user_events table no relation to Message Center
- Bugfix: fix and update Saman gateway WSDL, remove old files
rename ReferencePayment.wsdl.old to ReferencePayment_OLD.wsdl
- Cleanup: C_dev: cleaning online_payment_actions.py
- Bugfix: C_dev: user_actions.py: NameError in addNewUsersQuery
- Bugfix: TG: fix bad GroupNameSelecField and ISPNameSelecField
- added isp names and group names select as general ibs widgets
- Bugfix: C_invoice_dev: Fixed Rounding problem with user deposit
- Cleanup: Clean Init Function of Report Cleaner
- Bugfix: C_dev: call transactionFinished in finally block
- Cleanup: C_dev: user_actions.py: yet more cleaning
- Feature: add flag auto_renew_ignore_deposit: cherry-picked in C_dev
- Bugfix: C_invoice_dev: online_payment_arbitrary_convert_formula
- Bugfix: TG: fix bad GroupNameSelecField and ISPNameSelecField
- added isp names and group names select as general ibs widgets
- Bugfix: fix and update Saman gateway WSDL, remove old files
rename ReferencePayment.wsdl.old to ReferencePayment_OLD.wsdl
- Cleanup: C_invoice_dev: online_payment_main.py: remove duplocate mellat_shaparak
- Cleanup: C_invoice_dev: cleaning online_payment_actions.py, and compatibility with C_dev
- Bugfix: fix and update Saman gateway WSDL, remove old files
- Bugfix: fix active leave list
- Bugfix: Online Payment: issue #991, fix error formats don't wrap GeneralException in GeneralException again
- Feature: JSON-RPC: add method isp.listISPsWithIDs, issue #993
- Feature: JSON-RPC: add method group.listGroupsWithIDs, issue #993
- Bugfix: MihanSMS: fix stupid and non-working code of __getBodies written by a newbie, issue #874
- Bugfix: Security: fix Bug #1007, add .htaccess file to /util, /inc, /help, IN_user
- Feature: allow performing online payment without any result action(credit/deposit)
added for wispot, issue #994 must put 'no_action' key in web_attributes in preparePayment request
- Cleanup: paymentVerified: argument 'add_type' was ignore and not passed
- Improvement: Online Payment: return Bank Ref ID in Verify
return ref_id in verifyPayment and manualVerifyPayment json-rpc methods change msg to ref_id in gateway.verify and gateway.manualVerify return values issue #989 for wispot
- Bugfix: fix NameError in pasargad_gateway.py: getExceptionText, issue #990
- Feature: add new JSON-RPC method login.webLogin for new integrated web panel, issue #930
- Bugfix: notification: don't set threshold if notify failed
return succeed (True/False) in rule.notify
- Bugfix: C_invoice: typo in invoice_controller.py: startwsith->startswith, #976
- Bugfix: C_invoice: autoRecharge: fix stupid logic of checking user_recharge_deposit call transactionFinished in finally block
- Bugfix: notification: fix non-working msg_type='url', issue #680
- Bugfix: C_dev: CRITICAL: unable to change normal username
Bug initiated after a cherry-pick of Farshad's old commit by me on 2016-07-16
- add addons/client/reload/reload_defs.py
- Cleanup: move all params from defs.py to core/defs_lib/defs_defaults.py and core/paths.py
Feature: allow changing all params (except for paths) from web, by updating db/defs.sql using defs_defaults.py Must run db/defs.sql after each update
- Bugfix: update db/defs.sql
- Feature: C_dev: add IranKish gateway (Tejarat Bank), issue #937, not tested on C_dev
- Bugfix: fix non-working MihanSMS mc provider
- Bugfix: fix smarty function canDo, don't add admin_username to params
remove unused argument admin_username Fixes Bug #940, related to KILL USER and CLEAR USER
- Feature: use custom field in group
- C_invoice: Credit Notiticatio Rule: take {credit + recharge_deposit} instead of {credit + deposit}
- Feature: C_invoice: add config param 'change_service_share_isp_groups', used in getServiceSelection
- Remove Map page (containing outdated or redundant links) from Admin panel -> Home
- Bugfix: Negative Credit Expiration Date: saved Start='1970-01-01' in DB
- Bugfix: SyntaxError in core/notification/notification_rule.py
- Improvement: turbogears: use JSON-RPC instead of XML-RPC
- Online Payment: preparePayment: rename argument 'attribute_map' to 'attributes'
- Online Payment: add mandatory argument 'callback_url' to preparePayment
remove gateway attributes for callback/return/revert url (default 127.0.0.1*IBSng-tg), wrong by design
- Cleanup: soap: remove unused complex types related to online payment
- Cleanup: get rid of online_payment_soap_handler, and the rest of online payment related soap methods
- Cleanup: remove unused online payment soap handlers: manualVerifyPayment, manualApplyPayment, purgePayment
- Cleanup: remove unused soap import from /admin/setting/online_payment/online_payment_controller.py
- Cleanup: remove (old) report of Search Pending Payments, admins must use Online Payment Report
- Cleanup: less usage of soap handlers in Admin -> Settings -> Online Payment
add getAllGatewayInfos, manualApplyPayment and purgePayment xml-rpc handlers rename manualVerify into manualVerifyPayment remove manualSettle which is not used
- Bugfix: TG: restoreAuthDataBySessionID was not working, wrong param
- Improvement: json-rpc and xml-rpc: authenticate: INVALID_AUTH_TYPE: show given value
- Cleanup: remove soap handler verifyPayment
- Cleanup: remove soap handler preparePayment
- Cleanup: remove soap handler getPaymentSuggestedAmount
- Cleanup: remove soap handler getAvailablePaymentGateways
- Cleanup: TG: Unify admin and user online payment controllers
- Cleanup: TG: cleaning user/online_payment_controller.py
- Cleanup: TG: online payment: cleaning and trying to abstract user and admin controllers
- Improvement: TG: online payment: show ZarinPal bank Ref ID
- Improvement: TG: online payment: show Saman bank Ref ID
- Cleanup: C_staging: remove "Transfer Deposit" feature, which was disabled in 2012 (tag 137)
- Improvement: parsianCallback: change 'Operation Canceled' message to 'Incomplete Request, no "au"'
- Cleanup: online payment: fix unused xml-rpc methods, add missing ones
replace soap with xml-rpc in turbogears user controllers and some cleaning in turbogears user controllers
- Cleanup: online payment: don't use soap model in actions
- Cleanup: online_payment_actions: getAvailableGatewayTypes: remove duplicate gateway types, preserving the order
- Cleanup: online payment: add actions.getAvailableGatewayTypes, use it in soap handler
- Cleanup: TG: session.py: use XML-RPC instead of SOAP
restoreAuthDataBySessionID is used in online payment callbacks
- Cleanup: TG: replace SOAPError with Exception in @exception_handler(...)
- Cleanup: replace imports of "soap.soap_util.auth" with "ibsng.lib.auth" in turbogears controllers
- Improvement: soap: Map class: add __iter__ method and newFromDictionary classmethod
- Improvement: soap: add __iter__ method to SOAPModel, so that we can convert model into dict simply by dict(model)
- Feature: Online Payment Report: add 'Amount From' and 'Amount To' filters
- Improvement: add 'before_credit' column to connection_log, not tested
- Improvement: add 'group_id' column to connection_log, not tested
- Cleanup: db/functions.sql: break long list of args
- Bugfix: NameError (db_main) in core/user/plugins/mc.py
- Cleanup: remove 'partitioning_pg_min_version' and 'partitioning_pg_max_version' config params
- Bugfix: DB Partitioning: drop and re-create trigger if it was on another table (possibly *_previous_data)
- Bugfix: user_actions.calcRemainingDurationAndBytes, bytes is (str of) integer, not float, issue #912
- Bugfix: add BaseOnlineUsers.getOnlineUserIDsWithChargeID, use it in charge_actions.py before deleting a charge
- Bugfix: connection_usage.py: TypeError: 'NoneType' object has no attribute '__getitem__'
- Bugfix: minor bug in interface: Admin -> User Info -> Message Center -> always showed Yes
- Feature: show user attributes of (User Info's) Comment tab in Search User -> Attributes to Edit
- replace non-working isp_mapped_user_online_instances with isp_online_users_count getting from redis
add isp_obj.getOnlineUsersCount(), use it in isp_obj.hasOnlineUsers()
- don't send any notification (expiration/credit/birthday) to a locked user
- replace `map(None, x)` with `list(x)`
- replace `filter(lambda...)` with list comprehention
- remove `apply` with static number of arguments
- remove all the SortedList and SortedDic crap, needs to be reviewed/tested for possible typos
- replace list.sort cmp function with key function while fixing a stupid bug in user_import_factory: cmp must return 0, -1, 1
- replace all `map(lambda...` crap with list comprehension or normal for loop
- Bugfix: C_lan_acc_staging: mikrotik.py: ras_msg: rename "pppoe_service" into "service"
"service" is used in charge rules and "pppoe_service" is not used anywhere
- replace LOWERCASE_LETTERS_ON_USER_LOGIN flag with 2 new flags: LOWERCASE_USERNAME_ON_USER_LOGIN and LOWERCASE_PASSWORD_ON_USER_LOGIN
- Feature: Monthly Report Email: send connection logs of users to their email at the begining of Jalali month
- Bugfix: AbsDate: change AttributeError to a nice GeneralException
- imrovement: user panel: disconnect: change message (Persian / English) to prevent user's confusions
- Search Expired Users: show default '0 Days' for Expiration Date To, to avoid confusions
- bug fix: Copy This Group was not working, added Status to template
- C_staging: add missing perm DISALLOW ADD MULTIPLE USERS, used in user_handler.py exists in non-C branches since tag 173
- Added CHANGE INTERNET USERNAME permission and disallow changing username by default
- Feature: Add Query Wrapper for PyTable
- feature: allow admins to reset Real First Login in user info
- Cleanup: Remove PostgreSQL Storage
- add docstring for getUsersExpDateFirstLogin in user_actions.py, and remove extra newlines
- Feature: Add PyTables Log Type
- Feature: Add `md5_hexdigest` Function
- Feature: write LI log for shahkar service
- Feature: add flock
- fix interface bug in Bulk Renew Users: did not show error message
- sendNormalPasswordSMS: only check for attr_name='cell_phone'
- login_actions.py: break long lines
- send password: login_actions.py: fix style and remove uneeded lines
- security fix, add config options send_password_email and send_password_sms for web service, disable sms by default
- add Send Password feature (via EMail / SMS) as an interface config option
- disable XSS cleaning for inserted attrs too
- GenericHTTP mc provider: always save failure reason in report
add "failure_response_errors" comma-seperated attribute do addToFailed is request failed not tested
- GenericHTTP provider: add success_response_pattern parameter, a regex to decide if sending message was successful
- generic_http.py: replace __findEPointObjs with a simple list comprehension in receive
تگ 369 در تاریخ ۹۵/۱۱/۱۶
- BugFix: Reauthorize bytes were deducted twice from remaining bytes
- BugFix: Do not start accounting on reauthorize. Removes lots of nagging about online dic not found in error log
- Improvement: Make sure we never return a quota of 0 in case of a successful reauthorize
- Improvement: Run internal relogin with same priority as auth. Long queues might cause WS request to return while task has not been done yet
- BugFix: reauthorize_used_bytes should be used bytes from last update and not from start of session. Fixed premature QV0 while user still has credit.
- Feature: Add support for cisco_isg_max_reauthorize_mbytes and cisco_isg_max_reauthorize_minutes attributes to force reauthorize after a certain threshold
- Feature: Multiple prepaid services per account support
- BugFix: Max Rule Traffic Usage were not working correctly with multiple rules sharing one value (and custom field) and multiple instances using them
- BugFix: Multi login did not work with Multi Service rases other than ISG
تگ 368 در تاریخ ۹۵/۱۱/۱۱
- nothing changed in this tag
تگ 367 در تاریخ ۹۵/۱۱/۱۱
- Bugfix: skip users without ignore_ras
تگ 366 در تاریخ ۹۵/۱۱/۰۴
- Bugfix: #1452 Fix/Update Deprecated Links in Graph Menu
- Bugfix: #1136 Fix Name of Import File in Import User Menu
تگ 365 در تاریخ ۹۵/۱۰/۲۹
- Improvement: Failure to change sub services (ex. failed COA) should be detected. Also resync services after internal relogin to make sure we have correct services
تگ 364 در تاریخ ۹۵/۱۰/۲۹
- BugFix: Re-Onlined users might have get failed status due to left over from previous sessions
- BugFix: Radius Attributes with integer values were not working in charge rule attribute radius
- Improvement: Allow Acct-Interim-Interval to be passed to failed users
- BugFix: Some initial variables where missing in configuration file and advanced configuration
- Improvement: API cleanups for cisco isg rases
تگ 363 در تاریخ ۹۵/۱۰/۲۶
- Bugfix: cast ignore ras ids to int
- Bugfix: read min/max event time directly from defs
تگ 361 تا 362 در تاریخ ۹۵/۱۰/۱۹
- Bugfix: fix group usages of connection analysis
- Feature: Add User ID Attribute to Search User Page
C_pmacct Branch
تگ 372 تا 373 در تاریخ ۹۶/۰۳/۲۷
- Bugfix: Fix CSV Report of Web Analyser
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
- Feature: #1223 Modify 'urldump' sniffer application to fetch 'ip_map' data directly from IBSng
- Bugfix: Fix LDAP Permissions
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
C_mongo Branch
تگ 372 تا 374 در تاریخ ۱۳۹۶/۰۳/۲۷
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
- Bugfix: #1292 Fix Bulk Kill Action in Case of Choosing More Than One Group
When user chooses more than one group/isp/etc in Search User panel and selects bulk kill action it raises and error. It was because of invalid format of passing parameters.
- Improvement: #1186 Run mongo index in thread
- Improvement: #1186 Run mongo index in thread
- Bugfix: #1235 Fix Minor Invoicing DB Bug
Column reference to 'pi_issue_date' was ambiguous!
- Bugfix: Correct Delete Query of Redundant Partial Log Records
- Improvement: Read From Config File Whether to Write on PSQL or Not
Until now we read `defs.PSQL_LOG_CONNECTIONS` value to define whether we should write connection logs into PostgreSQL or not. With this commit value of `connection_log_use_psql` in `DATABASE_MONGO` section of IBSng config file defines our behaviour.
تگ 372 در تاریخ ۱۳۹۶/۰۱/۲۶
- Improvement: #1154 Add More Log in Case of Bulk Write Error
- Bugfix: #1201 Fix Slow Start of IBSng and Multiple Partial Log
It has been seen that the number of online user doesn't match the records count on partial data table, it will result in slow start of IBSng (in recover partial log phase). This commit will fix this issue and makes some improvement on writing partial log data.
- Improvement: Optimized partial log recovery for postgresql. Not exists queries are much more efficient for large inner queries with index
- BugFix: Internal relogin cleanup and bug fixes
- Improvement: Increased default max thresholds to decrease the load on ras and ibs
تگ 369 تا 371 در تاریخ ۱۳۹۵/۱۲/۱۰
- Improvement: Add Missing Log for MongoDB Bulk Action Failure
- Bugfix: Fix Active Leaves
The `getActiveLeaves` method must be called in 'MAIN' process.
- Improvement: Add Debug Log When Bulk Action of MongoDB Fails
- Bugfix: Fix Substracting User Credit Twice on Moving Partial Data
When we are restarting IBSng, all records of Connection Log Partial Data Table/Collection will be moved to the base Table/Collection, meanwhile used credit must be substracted from current credit of user, but it will be done seperately on each plugin: PostgreSQL and MongoDB, this will result in substracting used credit twice from user credit which is WRONG; this has been handled in this commit. Also we have done some performance improvement on moving collection records completely (bulk action) on MongoDB.
- BugFix: First reauthorize on ISG would cause lots of nagging and also leaves session dict without necessary attributes
- BugFix: Limit Port might cause error if ignored ras is not available in user attrs
- Improvement: Second username mapping should not be flushed on restart
تگ 369 در تاریخ ۱۳۹۵/۱۱/۳۰
- BugFix: We should not add internal_relogin flag to user attributes
- BugFix: Various Internal Relogin fixes
- Improvement: Make sure listen loop won't exit on an abnormal exception
- BugFix: Setting max rule traffic usage value as a float in custom fields would have break max rule traffic plugin
- Improvement: Disable Partitioning Check Contraints, this is done because of some efficiency issues
- Improvement: Add Index on `login_time` Field of Connection Log Collection
- BugFix: We should ignore negative threshold when QV is passed to cisco isg
- BugFix: A mid session reauthorize after a restart will create an instance without start accounting
- BugFix: Do not panic if charge rule is None during stop session
- BugFix: Not saving user after logout will lead to inconsistent user object
- Improvement: Handle Mongo Query Limitation in Query Generation Function
- Bugfix: #1476 Fix CSV/PDF Report of Connection Usages in MongoDB
- Bugfix: Replace <i8> Tag of XMLRPCLib to <int> For Backward Compatibility
According to XMLRPC specification long integer variables (INT64) should be handled with <i8> tag, but unfortunately this haven't been handled in C#, PHP, etc languages. So we are forced to use <int> tag with variables in range of INT32 and use <string> tag with variables not in specified range.
- Improvement: Cast All Elements of Details Section of Connection Log Report to String
- BugFix: Take credit limit into account when calculating remaining bytes. This fixes postpaid user problem with isg prepaid services
- Improvement: Kill max delay default value was too large. Set it to 2 hours by default
- Improvement: Make auth rate control optional and turn it off by default
- Bugfix: #1476 Fix CSV/PDF Report of Connection Log in MongoDB
- Bugfix: #1512 Fix `int` Convertion of `float` String
- Bugfix: #1503 Fix MAC Extraction From RAS of ZTE Type
ZTE model rases change the format of user mac address in recent framework update, e.g: old format: `78d99fd34e4b` new format: `78:d9:9f:d3:4e:4b`
- Bugfix: #1500 Fix Sorting and Pagination Problem of Connection Usages Report
- Bugfix: don't assign ip to sub service
تگ 368 در تاریخ ۱۳۹۵/۱۱/۲۵
- Bugfix: add missing function call on commit of periodic acc plugin
- Improvement: Few logging for radius process
- BugFix: Reauthorize bytes were deducted twice from remaining bytes
- BugFix: Fixed bad commit
- BugFix: Do not start accounting on reauthorize; Removes lots of nagging about online dic not found in error log
- Improvement: Make sure we never return a quota of 0 in case of a successful reauthorize
- Improvement: Run internal relogin with same priority as auth. Long queues might cause WS request to return while task has not been done yet
- BugFix: reauthorize_used_bytes should be used bytes from last update and not from start of session. Fixed premature QV0 while user still has credit.
- Bugfix: skip users without ignore_ras
- Feature: Add support for cisco_isg_max_reauthorize_mbytes and cisco_isg_max_reauthorize_minutes attributes to force reauthorize after a certain threshold
- Feature: Multiple prepaid services per account support
- BugFix: Max Rule Traffic Usage were not working correctly with multiple rules sharing one value (and custom field) and multiple instances using them
- BugFix: Onlines table in single user info page were became messed up after first ajax based refresh
- BugFix: Multi login did not work with Multi Service rases other than ISG
- Bugfix: #1452 Fix/Update Deprecated Links in Graph Menu
The following links are deprecated and removed: All Realtime Graph Internet Realtime Graph Voip Realtime Graph BW Realtime Graph Also updated modified links
- Improvement: Failure to change sub services (ex. failed COA) should be detected. Also resync services after internal relogin to make sure we have correct services
- Bugfix: #1136 Fix Name of Import File in Import User Menu
- BugFix: Re-Onlined users might have get failed status due to left over from previous sessions
- BugFix: Radius Attributes with integer values were not working in charge rule attribute radius
- Improvement: Allow Acct-Interim-Interval to be passed to failed users
- Improvement: Exception handling for internal relogin
- Bugfix: Incorrect call to getUserAttrs caused exception
- BugFix: Some initial variables where missing in configuration file and advanced configuration
- BugFix: Undefined session raised unnecessary exception
- Improvement: API cleanups for cisco isg rases
- Bugfix: cast ignore ras ids to int
- Bugfix: read min/max event time directly from defs
- Bugfix: fix group usages of connection analysis
- Feature: Add User ID Attribute to Search User Page
- Feature: optionally do autoRenew on abs expired user
- Bugfix: log deposit_type in deposit change
- Cleanup: clean md5 response
تگ 367 در تاریخ ۱۳۹۵/۱۱/۱۳
- Bugfix: #1449 Fix `users.group_id` Bug
- Feature: #1478 Add `bson.int64.Int64` Marshaling Support to XMLRPCLib
- Bugfix: #1465 Fix Remaining Credit Feild of Connection Log Report
Some older records (or first record) of user connection log may not have before credit field or has the value `None`, which yields to raising an exception when calculating the value of `remaining_credit` field [`remaining_credit = before_credit - credit_used`].
- Bugfix: #1449 Fix Ambiguous Fields `user_id` and `group_id` in Management Summary Report
After adding two columns `user_id` and `group_id` to `connection_log` table it created a conflict with `users` table on in management summary queries; in this fix we change SQL queries to exactly specify which fields we mean by `user_id` and `group_id`: `users.user_id`, `users.group_id`, etc.
تگ 366 در تاریخ ۱۳۹۵/۱۱/۰۹
- Feature: Add `getConnectionUsages` Method to API
The old methods of connection usages report (`getCreditUsages`, `getDurationUsages` and `getInOutUsages`) won't support ISG feature: `sub_service_name`, `sub_service_charging` and `sub_service_qos`. So we added a new method called `getConnectionUsages` which covers ISG features.
- Bugfix: #1460 Fix Connection Usage Report
تگ 365 در تاریخ ۱۳۹۵/۱۱/۰۵
Improvement: Second username mapping should not be flushed on restart
BugFix: Re-Onlined users might have get failed status due to left over from previous sessions
Improvement: Allow Acct-Interim-Interval to be passed to failed users
Bugfix: Incorrect call to getUserAttrs method of API caused exception
BugFix: Some initial variables where missing in configuration file and advanced configuration
BugFix: Undefined session raised unnecessary exception
Improvement: API cleanups for cisco isg rases
C_diameter Branch
تگ 385 تا 394 در تاریخ ۱۳۹۶/۰۵/۲۳
Improvement: Allow defining two other redis instances for radius and online_user_storage for redis clustering
BugFix: 3GPP location info is in binary format and should be converted
Feature: Add "FULL ACCESS CONNECTION LOGS" Permission
Admins with this permission can set all filters of connection log/usage report (like a GOD admin). This permission has "SEE CONNECTION LOGS" dependency.
Bugfix: Fix Result Per Page Limit of Connection Log
This problem occured after limiting users on accessing certain filters in connection log report page, where setting result per page parameter has no effect on output result.
Feature: #1477 fix access for non GOD users to connection usage
Feature: #1477 add control permission for non GOD users to connection usage
remove advanced and group tabs and remove isp from conditions tab. and the maximum range of login_from , login_to is 1 month now.
BugFix: runDebugCode were not working in WS_WORKERS
BugFix: extractRoutes paniced in case ras set routes in prefix bit
NewFeature: Allow having multiple webservice processes
BugFix: Typo in expirePIQuery resulted in no PI expiration
Bugfix: #1412 Change Back Using Event Time Instead of Remaining Time
In `canStayOnlineResult` when we intend to use `newRemainingTime` we have to make sure about exact value of this parameter (no estimation here), otherwise we have to use `newNextEventTime`.
Bugfix: #1412 Using `get` for Fetching Threshold Values
Bugfix: #1412 Fix Using of Thresholds in Can Stay Online Result
If can stay online result object contains `remaining_bytes` or `remaining_time` we will fill our `session_dict` with `threshold_bytes` and `threshold_secs` respectively. Now if an alive packet arrives and one of these thresholds meet, we run `canStayOnline` methods of user plugins (by force) to recalculate the parameters. This will fix Periodic Accounting and Notification Profile plugins functionality. Note: We have error threshold of twice the interval between alive packets, meaning, we may run `canStayOnline` methods late by specified time.
Improvement: Increase udp memory buffers to improve radius server performance
Improvement: Use blocking recvfrom instead of select as now we have multiple processes recvfrom same socket
Bugfix: Add `routes` Parameter to Cisco PCEF `provisionRequest` Method
NewFeature: Implemented pretty start using blessings to emphasize important events on startup
BugFix: Diameter process should not process any radius packets
BugFix: Fixed duplicate packets were not working
Improvement: Moved RADIUS_AUTH and RADIUS_ACCT into RADIUS_WORKER for better scalability
BugFix: Fixed douran provisioning did not support routes
BugFix: Framed-Route passing to pcef were not working on huawei rases
BugFix: Fixed typo which caused Traffic Periodic Accounting without cpmb to not work
BugFix: AppliedChargeRule.getChargeRule should return None if charge rule is no longer available
Bugfix: Add Two Attributes to Radius Dict; `byte` and `ipv6addr`
Improvement: Some Changes for Non GOD Report of Connection Log
Also Add new attribute types of 3GPP.
Feature: #1447 add permissions for non God admin in connection log
added some permission for non god admins witch non god admins wont see some tabs in connection log page and range of login time will be at most one month .
BugFix: CPMB input validation was incorrect
Improvement: API change bw were not working in C_diameter based branches
NewFeature: 3GPP attribute support in huawei ras
BugFix: Fixed typo in sendCOA caused log not to be written in console for COAs
BugFix: Append a * to custom field attribute names to indicate its a custom field and prevent clash of request names with conditions
Improvement: Allow setting negative cpmb as a mean for services to reduce from master traffic
Bugfix: #1455 Change Priority of User Rad Attr Over Charge Rad Attr
In some cases (such as "Filter-Id" attribute) Rases will only consider the latest attribute in case two (or more) attributes have same keys. Because user radius attributes have priority over charge radius attribute by setting it's priority to 7, it will run after charge plugin (which it's priority is 6) so the considered attribute value will be the user's one.
Feature: #1397 Remove Admin Condition From User Audit Log
We replaced Admin condition in User Audit Log page with User ISP condition where the records will be filtered based on accessable user(s) in ISP instead of accessable Admin(s) of ISP.
NewFeature: Support for routes in pcef user awareness
Feature: #1462 add failed online reason to user information page
if there was a reason for failed online it will be shown on user information page .
Improvement: Enhanced traffic periodic accounting to use can stay remaining bytes and internal reauthorize
BugFix: failed_login_assign_ip was not applied to routeip and netmask plugins
BugFix: IPHost-Addr attribute were changed in new huawei dictionary
BugFix: An error during periodic credit change checkAll might cause skipping of change credit for some users
Improvement: Script to reload radius dictionary. Should be run in all radius workers
BugFix: Huawei DNS attributes were changed in new dictionary
BugFix: Duplicate Mac/Port did not work after last change
Improvement: A handy script to kill all failed users
BugFix: Failed users does not need internal relogin as killIfFailed would take care of that
BugFix: getOnlineUsersIterItems was returning user_id as string instead of integer
BugFix: Fix typo in table name
Improvement: New client script to clear all acct not started users
BugFix: Huawei ras was not compatible with new dictionary file
Improvement: Updated huawei dictionary
Bugfix: #1417 Minor Cleanup
Bugfix: #1417 Fix Load Balancing Functionality of IPPool Plugin
The `ippool_main.getLoader().getIPpoolByID` will return either an "IPPool" or "LoadBalancingIPPool" object. In later case the object has no `getContainer` method. Instead we use `setIPInPacket` method which is available in both objects and has the same functionality.
Cleanup: Removed ONLINE_CHECK_MULTI_LOGIN from advanced config as it was duplicate functionality with multi login plugin
BugFix: Failed logins should not be counted into multi login. Now allow up to 3 failed logins in addition to normal master instances.
Feature: #1317 Add ISP Filter to `getListOfCharges` Charge Action
Feature: #1317 Add ISP Filter to `getListOfGroups` Group Action
BugFix: IP Pool plugin was raising None if ip is not available in ippool anymore
Improvement: Can Stay Result now have 4 variables
Remaining Time: Charging and Authorization remaining Time Next Event Time: Used by plugins need to set a next event Improtatnt Event Time: This overrides MIN_USER_EVENT_TIME Remaining Bytes: Bytes remaining until next event
Improvement: Internet Reauthorizes which triggered auto recharge were rejected incorrectly
BugFix: Charge.getRuleWithID should return None if rule id does not exists
NewFeature: diameter_prevent_cctime_avalanche attribute in diameter ras controls if cc-time should be distributed across half of a update accounting time
NewFeature: Persistent charge rule cache to use a LFU cache for keeping applied charge rule data
BugFix: Diameter terminate would reset session dict by mistake
BugFix: Diameter response time can be higher than usual radius authentication
BugFix: Packet storage should not be opened in online worker due to performance penalty
NewFeature: Added support to specify unix socket or ip address of syslog through syslog_destination in config file
Bugfix: Fix Minor Bug
BugFix: Kill failed user if deposit has been changed in hope of auto renew or auto recharge
Improvement: added REQUIRE_INTERNAL_RELOGIN flag to AttributeHandler to control if internal relogin is required for updating the specific attribute. This will reduce number of internal relogins required
BugFix: IBSErrors are mostly login related and should not be logged in error.log
BugFix: Failed and Idle login automatic detection on re-online were not working
Cleanup: Removed unused DEBUG_ERRORS, DEBUG_WARNINGS, DEBUG_THREADS from defs and logging
Cleanup: Removed duplicate defs entries
Improvement: Allow changing including of seconds in date through advanced config
BugFix: _handlePacketResponse signature was changed while some usages were missing
Bugfix :#1436 change QOS defs propertis to accept string input
BugFix: Fix small memory and thread leak problem in thread wrappers
BugFix: Douran ras was using charging name to be passed as rating group. It should be extracted from sub service name
NewFeature: Reject cache configuration has been moved to ras attributes. [REJECT CACHE] Configuration section is now deprecated.
NewFeature: Diameter translated packets are now written into DIAMETER/diameter_translation.log instead of filling up RADIUS/auth.log
Improvement: Diameter packets will use new packet codes DiameterCCRInit,DiameterCCRUpdate,DiameterCCRTerm,DiameterCCASuccess,DiameterCCAFailure instead of radius ones
BugFix: True or False should not be used in defs variables. 1 or 0 should be used instead
Bugfix: Replace `__bool__` With `__nonzero__`
`__bool__` data model is replacement of `__nonzero__` in python 3.x; since we're still on python 2.x we have to still use `__nonzero__`
NewFeature: Support for setting cisco_isg_failed_method attribute of cisco isg ppp ras to FAILED_USER_L4 which causes failed user to have normal ip assignments
Bugfix :#1424 real time bw graph timeline problem
time line problem solved using utc time guide.
Improvement: don't log wrong password
Improvement: Show session id (unique_id_value in fact) in connection log report
Improvement: Show seconds by default in all reports
BugFix: if pkt was checking attributes length while it should be always true
Improvement: Log storage address in radius logs for debugging purpose
Improvement: Checkonline was running too fast causing Late Packets during it's run
Improvement: Better logging for packet storage
BugFix: Prevent double slashes for shared storage file paths
BugFix: threadpool terminate and close methods were not working
Improvement: Log ibs request id into radius log to make debugging easier
BugFix: In some situations, cisco pcef session did not stop after master session has been disconnected. Make sure the session is cleaned up by first sending pod if session pcef dict is not available and second optionally send a pod on each start packet
BugFix: Fixed a race condition that might cause packet storage files not to be deleted
Bugfix: #1367 search_expired_user.php check_all_users problem
multi select problem for users has been handled.
BugFix: Policy worker server log were not filtered
BugFix: snmp agent were not working due to xmlrpc limitations. Converted client to use jsonrpc instead
Cleanup: Refactor threadpool to be more efficient and simple. Also there would be no need to tune number of threads for different sizes of system as threadpool would grow automatically
Improvement: Do not log unnecessary attributes in connection log
Cleanup: Do not log soap handler registeration if debugging is off
Cleanup: Removed not migrated ras folder
BugFix: Exception Logs were written twice
BugFix: IP Conflict happens during re-online because conflicted session did not get kicked out
Improvement: Include seconds in date representation
Improvement: Timedelta representation for kill time is ugly. Use default date format instead
تگ 381 تا 385 در تاریخ ۱۳۹۶/۰۴/۱۵
- Bugfix: #1408 Port call_id_blacklist plugin to C branch
- BugFix: Moved SOAP HTTP Server from builtin python library into a local library and swap select.select to poll.epoll
- BugFix: Stop priority should be higher
- BugFix: Fixed internal relogin might raise (harmless) error if called multiple times
- BugFix: Cisco VPDN was nagging incorrectly if user does not have in ras bw
- BugFix: Not finding session dict during session start is not an error and should not be reported as an error
- BugFix: Maximum reauthorize quotas did not apply if effective charge rule does not have CPMB
- BugFix: Cisco PCEF stop awareness should remove session from activated sessions
- BugFix: pass_remaining_volume and pass_remaining_duration ras attributes were not applied in cisco isg races
- BugFix: Internal Relogin would cause ip conflict if ippool is defined in user or charge level
- BugFix: Internal Relogin kill reason was lost due to not saving user state
- BugFix: Send service resync requests after internal_relogin with a delay to make sure all instances has been relogged in before resync
- Improvement: Clean up imports so unnecessary components would not be initialized in listener processes
- BugFix: User Worker Queue did not run requests in order which their arrived even if they had equivalent priority
- BugFix: ID generation was not working correctly for multiple processes. Fixed by separating port range of each radius worker
- Improvement: Cache time series dynamic register statistics to decrease redis hgetall calls
- Fix: Show Exact Value for ISP's on Online Users
- Feature : #1361 change the sub service qos name to limited drop down
change the sub service qos name to limited drop down options .
- Feature : #1360 edit charge priority from 1-10 to 1-50
edit charge priority to 1-50 and it's backend error and validation rules.
تگ 377 تا 381 در تاریخ ۱۳۹۶/۰۳/۲۷
- NewFeature: Rates for diameter request and replies and also exposing them via snmp
- Bugfix: #1339 Load Invoice Main in Online Worker
- BugFix: Make ibs init script lsb compatible
- NewFeature: Script to gracefully reload charges
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Improvement: Kill support of PCEF Master session
- BugFix: Re-online might mess up with Cisco PCEF Sessions
- Improvement: A check script for cisco pcef session validation
- Improvement: Log if reauthorize has changed any service
- Bugfix: #1339 Load Invoice Main in Online Worker
- Improvement: Increased isg session ttl to make sure no session is being lost
- Improvement: Updated SNMP bridge to support more OIDs and be compatible with C branch
- BugFix: Cisco PCEF stop awareness did not work sometimes due to incorrect session id
- Bugfix: Session dictionary might be lost if the time between master session and starting of traffic is more than 4 update accountings. Make is 24 hours instead
- Improvement: Notify admin about starting and finishing partial and second user mapping
- Bugfix: Re-Online did not create cisco pcef session correctly
- Bugfix: Proxy-State were not correct for reject cache responses. It should be exactly the same as request value
- BugFix: First snapshot online loop should not happen in start critical path
- Improvement: New roundrobin policy queues to prevent a unreachable ras to slow policy changes of other rases
- BugFix: 0 in/out would returned if a diameter ras does not receive tariff change reauthorize
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
- BugFix: Make check online less intrusive by increasing sleep time
- BugFix: Re-online packets did not fill pcef master session id causing pcef stop not to work for re-onlined sessions
- BugFix: Idle threshold were not working correctly with sub services, causing users to be detected idle incorrectly
- BugFix: Better handling of isg session dict to fix pcef stop requests not being sent
- Improvement: Allow kill requests on all policy workers
- Improvement: Suppress unnecessary errors when receiving reauthorize
- BugFix: reloadUser without wait for lock caused infinite loop
- BugFix: Online User Storage must be flushed during IBSng start up
- BugFix: Credit Limit was displayed incorrectly
- BugFix: Redis might incorrectly reset pubsub in busy situations
- BugFix: Mutable object should not be passed as default argument
- Cleanup: Cleaned up check online method
- BugFix: Fixed reloadUser might incorrectly run while lock has not been acquired
- Bugfix: #1292 Fix Bulk Kill Action in Case of Choosing More Than One Group
When user chooses more than one group/isp/etc in Search User panel and selects bulk kill action it raises and error. It was because of invalid format of passing parameters.
- Bugfix: #1235 Fix Minor Invoicing DB Bug
Column reference to 'pi_issue_date' was ambiguous!
تگ 372 تا 377 در تاریخ ۱۳۹۶/۰۲/۱۹
- BugFix: mp observer change in isp loader caused isp states to reset
- BugFix: unload/load instead of reload causes race condition where isp object is no longer available
- BugFix: Reporting Reason was not parsed correctly
- Improvement: Added two more timers to radius packets
- BugFix: Online user storage were using incorrect redis db
- BugFix: Reporting Reason is a sub attribute of Used-Service-Unit.
- Improvement: Improve internet reauthorize response time by increasing the priority of reauthorize initiated recalc next event queries
- BugFix: Fixed Typo which cause isp deposit role back not to work correctly
- BugFix: Consume ISP deposit was broken after Internal Relogin. Fix to always reload ISP and log after consuming deposit.
- BugFix: Fixed diameter update messages might not be replied by better error handling of internetReAuthorizeResult
- BugFix: Make sure we always call canstay callbacks. Also use canstay callbacks instead of specific purporse reauthorize in progress mechanism
- BugFix: Do not send Failover diameter attribute as not all PGW supports it
- BugFix: Diameter ASR and RAR were not working after switching to policy workers scheme
- BugFix: Webservice port selection for RADIUS and DIAMETER processes were messed up
- BugFix: Fix memory leak of web service process by replacing cyclic-reference-creator collections.OrderedDict with odict.odict in kairos library
- BugFix: __internetReauthorizeCheckForIncorrectSubService was not working due to typo
- Improvement: Added Allocation-Retention-Priority to diameter dictionary
- Improvement: Rename KILL Process to POLICY_WORKER and allow multiple policy worker to be run simultaneously
- Improvement: Sandvine ras compatibility improvement
- Improvement: Support for separated In/Out bytes in diameter requests
- Improvement: Support more 3gpp attributes in CCRs
- NewFeature: Log watchdogs, init_and_terminates, updates, asr_and_rar diameter requests and replies in different files under DIAMETER folder
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
Resolving 'max_rule_time_usage' charg rule to be read from user custome field (e.g: 'F:time') haven't been handled.
- BugFix: Duplicate detector was not caching reply packets and never replay them
- BugFix: RADIUS,ACCT,DIAMETER request id generation was not correct
- BugFix: Reject cache leaked memory in redis, with non-expiring keys
- BugFix: Reject cache might show incorrect macs in user interface
- NewFeature: Sandvine PCEF Support
- Improvement: Diameter Server Enhancements to comply with 3GPP 32.299 v.12 diameter charging application
- Bugfix: #1215 Fix Timezone Issue in Online Graph
- BugFix: Turned off sub service check by default
- NewFeature: New features for sub services starting and checking
*Sub services has now two new boolean options, auto_start and auto_check auto_start: Should this sub service auto started when subscriber master session brought up auto_check: Should this sub service checked during can stay and ensure it's available. *Service Auto Check is a new mechanism which compares current subscriber services with applicable ones. If there's a difference, it will resync services after a guard time. Guard time prevents resyncing when sub services in queue to start.
- Improvement: Log next event and kill dict in can stay event of log console
- Improvement: Few Logging for diameter translator
- BugFix: Cleanup diameter server connection after connection is closed
- Improvement: Use a TTL based dictionary for diameter packets to ensure we dont eat up all memory due to a problem in packet processing.
- BugFix: Fixed InternetReauthorize were not working correctly because of bad merge
- BugFix: SOAP Server is only available in WS process
- Improvement: Increased default threshold megabytes and update interval for better performance
- Improvement: Decreased number of threads for protocol listeners
- BugFix: Cisco ISG reauthorize threshold ras attributes were missing
- BugFix: Cisco ISG IPAccountLogon packet detection was not accurate
- Improvement: Run Radius Auth, Radius Acct and Diameter in separate processes to increase scalability
- BugFix: Cisco PCEF Stop did not work due to bad session id
- BugFix: Added missing imports due to bad merge
- BugFix: Internal relogin cleanup and bug fixes
- Improvement: Increased default max thresholds to decrease the load on ras and ibs
تگ 372 در تاریخ ۱۳۹۵/۱۲/۲۲
- Improvement: Decreased number of threads for protocol listeners
- BugFix: Cisco ISG reauthorize threshold ras attributes were missing
- BugFix: Cisco ISG IPAccountLogon packet detection was not accurate
- Improvement: Run Radius Auth, Radius Acct and Diameter in separate processes to increase scalability
- BugFix: Cisco PCEF Stop did not work due to bad session id
- BugFix: Internal relogin cleanup and bug fixes
- Improvement: Increased default max thresholds to decrease the load on ras and ibs
تگ 364 تا 371 در تاریخ ۱۳۹۵/۱۲/۱۰
- Bugfix: Fix Active Leaves
The `getActiveLeaves` method must be called in 'MAIN' process.
تگ 364 در تاریخ ۱۳۹۵/۱۲/۰۷
- Bugfix: Add Missing Imports to Radius Module
تگ 363 در تاریخ ۱۳۹۵/۱۲/۰۴
- BugFix: Internal relogin cleanup and bug fixes
- Improvement: Increased default max thresholds to decrease the load on ras and ibs
تگ 355 تا 362 در تاریخ ۱۳۹۵/۱۲/۰۲
- BugFix: Some ASRs does not allow logoff request without username
- BugFix: Various Internal Relogin fixes
- Improvement: Make sure listen loop won't exit on an abnormal exception
- BugFix: Setting max rule traffic usage value as a float in custom fields would have break max rule traffic plugin
- BugFix: Using same ID generator for radius and diameter process will cause concurrent access to generator
-Improvement: Increased number of threads in radius processes to 200. PCEF rases might establish lots of connections which run the process out of threads
- Improvement: Disable Partitioning Check Contraint, This is done because of some efficiency issues
- BugFix: We should ignore negative threshold when QV is passed to cisco isg
- BugFix: A mid session reauthorize after a restart will create an instance without start accounting
- BugFix: Not saving user after logout will lead to inconsistent user object
- BugFix: Take credit limit into account when calculating remaining bytes. This fixes postpaid user problem with isg prepaid services
- Improvement: Kill max delay default value was too large. Set it to 2 hours by default
- Improvement: Make auth rate control optional and turn it off by default
- Bugfix: #1512 Fix `int` Convertion of `float` String
- Bugfix: #1449 Fix `users.group_id` Bug
Fixed `getDBColName` in a way which returns the part after the dot, e.g 'usersgroup_id' => 'group_id'
- Bugfix: #1449 Fix Ambiguous Fields `user_id` and `group_id` in Management Summary Report
After adding two columns `user_id` and `group_id` to `connection_log` table it created a conflict with `users` table on in management summary queries; in this fix we change SQL queries to exactly specify which fields we mean by `user_id` and `group_id`: `users.user_id`, `users.group_id`, etc.
- Bugfix: #1503 Fix MAC Extraction From RAS of ZTE Type
ZTE model rases change the format of user mac address in recent framework update, e.g: old format: `78d99fd34e4b` new format: `78:d9:9f:d3:4e:4b`
- Improvement: Few logging for radius process
- BugFix: Reauthorize bytes were deducted twice from remaining bytes
- BugFix: Do not start accounting on reauthorize. Removes lots of nagging about online dic not found in error log
- Improvement: Make sure we never return a quota of 0 in case of a successful reauthorize
- Improvement: Run internal relogin with same priority as auth. Long queues might cause WS request to return while task has not been done yet
- BugFix: reauthorize_used_bytes should be used bytes from last update and not from start of session. Fixed premature QV0 while user still has credit.
- Bugfix: don't assign ip to sub service
- Feature: Jetsib PGW Support
- Bugfix: skip users without ignore_ras
- Feature: Add support for cisco_isg_max_reauthorize_mbytes and cisco_isg_max_reauthorize_minutes attributes to force reauthorize after a certain threshold
- Feature: Multiple prepaid services per account support
- BugFix: Max Rule Traffic Usage were not working correctly with multiple rules sharing one value (and custom field) and multiple instances using them
- BugFix: Onlines table in single user info page were became messed up after first ajax based refresh
- BugFix: Multi login did not work with Multi Service rases other than ISG
- Bugfix: #1452 Fix/Update Deprecated Links in Graph Menu
The following links are deprecated and removed: All Realtime Graph Internet Realtime Graph Voip Realtime Graph BW Realtime Graph Also updated modified links
- BugFix: Limit Port might cause error if ignored ras is not available in user attrs
- BugFix: PCEF stop provisioning was not sent
- Improvement: Second username mapping should not be flushed on restart
- Improvement: Failure to change sub services (ex. failed COA) should be detected. Also resync services after internal relogin to make sure we have correct services
- Bugfix: #1136 Fix Name of Import File in Import User Menu
Note: after changing the log process to pass the logging mechanism to python syslog module, user_import logs won't be written to a local file which will cause to "View Import Log" link on "Import User" page after uploading CSV file won't work. this can be fixed by adding new log type (aside `QueueLogger` and `DirectLogger`) to IBS logger module, but this is not a priority now; look at the comments on changed files for more info.
- BugFix: Re-Onlined users might have get failed status due to left over from previous sessions
- BugFix: Radius Attributes with integer values were not working in charge rule attribute radius
- Improvement: Allow Acct-Interim-Interval to be passed to failed users
- Improvement: Exception handling for internal relogin
- Bugfix: Incorrect call to getUserAttrs caused exception
- BugFix: Some initial variables where missing in configuration file and advanced configuration
- Improvement: API cleanups for cisco isg rases
- BugFix: Undefined session raised unnecessary exception
- BugFix: Some initial variables where missing in configuration file and advanced configuration
- Feature: Cisco ISG IPoE as PCEF support
- Bugfix: cast ignore ras ids to int
- Bugfix: read min/max event time directly from defs
- Bugfix: fix group usages of connection analysis
- Feature: Add User ID Attribute to Search User Page
- BugFix: Threshold Bytes/Seconds did not trigger internal reauthorize due to bad merge
- BugFix: Threshold calculations was went south due to bad merge
- BugFix: Second username change fail in case of internal relogin
- Improvement: get method for SNMP client
- Bugfix: fix internal relogin answer to main proc
- Bugfix: Race condition might cause internal relogin to fail
- Bugfix: Autorenew would fail if user has next group and current group does not have group_credit
- Bugfix: fix limit port binding
- Bugfix: fix periodic acc failed login
- Bugfix: fix non-working periodic accounting plugin
- Bugfix: Some mikrotik devices send mschapv2 flags as non-zero which is not compliant by standard but leads to wrong passwords
- Feature: optionally do autoRenew on abs expired user
- Bugfix: log deposit_type in deposit change
- Cleanup: clean md5 response
C_lan_diameter Branch
تگ 397 در تاریخ ۱۳۹۶/۰۶/۰۵
This branch is the merge of C_lan_acc into C_diameter branch.
C_diameter_mongo Branch
تگ 385 تا 394 در تاریخ ۱۳۹۶/۰۵/۲۳
Improvement: Allow defining two other redis instances for radius and online_user_storage for redis clustering
BugFix: 3GPP location info is in binary format and should be converted
Feature: Add "FULL ACCESS CONNECTION LOGS" Permission
Admins with this permission can set all filters of connection log/usage report (like a GOD admin). This permission has "SEE CONNECTION LOGS" dependency.
Bugfix: Fix Result Per Page Limit of Connection Log
This problem occured after limiting users on accessing certain filters in connection log report page, where setting result per page parameter has no effect on output result.
Feature: #1477 fix access for non GOD users to connection usage
Feature: #1477 add control permission for non GOD users to connection usage
remove advanced and group tabs and remove isp from conditions tab. and the maximum range of login_from , login_to is 1 month now.
BugFix: runDebugCode were not working in WS_WORKERS
BugFix: extractRoutes paniced in case ras set routes in prefix bit
NewFeature: Allow having multiple webservice processes
BugFix: Typo in expirePIQuery resulted in no PI expiration
BugFix: Session ID were not shown in connection log report
Bugfix: #1412 Change Back Using Event Time Instead of Remaining Time
In `canStayOnlineResult` when we intend to use `newRemainingTime` we have to make sure about exact value of this parameter (no estimation here), otherwise we have to use `newNextEventTime`.
Bugfix: #1412 Using `get` for Fetching Threshold Values
Bugfix: #1412 Fix Using of Thresholds in Can Stay Online Result
If can stay online result object contains `remaining_bytes` or `remaining_time` we will fill our `session_dict` with `threshold_bytes` and `threshold_secs` respectively. Now if an alive packet arrives and one of these thresholds meet, we run `canStayOnline` methods of user plugins (by force) to recalculate the parameters. This will fix Periodic Accounting and Notification Profile plugins functionality. Note: We have error threshold of twice the interval between alive packets, meaning, we may run `canStayOnline` methods late by specified time.
Improvement: Increase udp memory buffers to improve radius server performance
Improvement: Use blocking recvfrom instead of select as now we have multiple processes recvfrom same socket
Bugfix: Add `routes` Parameter to Cisco PCEF `provisionRequest` Method
NewFeature: Implemented pretty start using blessings to emphasize important events on startup
BugFix: Diameter process should not process any radius packets
BugFix: Diameter process should not process any radius packets
BugFix: Fixed duplicate packets were not working
Improvement: Moved RADIUS_AUTH and RADIUS_ACCT into RADIUS_WORKER for better scalability
BugFix: Fixed douran provisioning did not support routes
BugFix: Framed-Route passing to pcef were not working on huawei rases
BugFix: Fixed typo which caused Traffic Periodic Accounting without cpmb to not work
BugFix: AppliedChargeRule.getChargeRule should return None if charge rule is no longer available
Bugfix: Add Two Attributes to Radius Dict; `byte` and `ipv6addr`
Improvement: Some Changes for Non GOD Report of Connection Log
Also Add new attribute types of 3GPP.
Feature: #1447 add permissions for non God admin in connection log
added some permission for non god admins witch non god admins wont see some tabs in connection log page and range of login time will be at most one month .
BugFix: CPMB input validation was incorrect
Improvement: API change bw were not working in C_diameter based branches
NewFeature: 3GPP attribute support in huawei ras
BugFix: Fixed typo in sendCOA caused log not to be written in console for COAs
BugFix: Append a * to custom field attribute names to indicate its a custom field and prevent clash of request names with conditions
Improvement: Allow setting negative cpmb as a mean for services to reduce from master traffic
Bugfix: #1455 Change Priority of User Rad Attr Over Charge Rad Attr
In some cases (such as "Filter-Id" attribute) Rases will only consider the latest attribute in case two (or more) attributes have same keys. Because user radius attributes have priority over charge radius attribute by setting it's priority to 7, it will run after charge plugin (which it's priority is 6) so the considered attribute value will be the user's one.
Feature: #1397 Remove Admin Condition From User Audit Log
We replaced Admin condition in User Audit Log page with User ISP condition where the records will be filtered based on accessable user(s) in ISP instead of accessable Admin(s) of ISP.
NewFeature: Support for routes in pcef user awareness
Feature: #1462 add failed online reason to user information page
if there was a reason for failed online it will be shown on user information page .
Improvement: Enhanced traffic periodic accounting to use can stay remaining bytes and internal reauthorize
BugFix: failed_login_assign_ip was not applied to routeip and netmask plugins
BugFix: Update python dependency file
BugFix: Caller ID were not available in mongo connection log
BugFix: IPHost-Addr attribute were changed in new huawei dictionary
BugFix: An error during periodic credit change checkAll might cause skipping of change credit for some users
Improvement: Script to reload radius dictionary. Should be run in all radius workers
BugFix: Huawei DNS attributes were changed in new dictionary
BugFix: Duplicate Mac/Port did not work after last change
Improvement: A handy script to kill all failed users
BugFix: Failed users does not need internal relogin as killIfFailed would take care of that
BugFix: getOnlineUsersIterItems was returning user_id as string instead of integer
BugFix: Fix typo in table name
Improvement: New client script to clear all acct not started users
BugFix: Huawei ras was not compatible with new dictionary file
Bugfix :#1441 real time online graphs don't show
this problem caused cause of bad convert formats . config edit added.
Improvement: Updated huawei dictionary
Bugfix :#1441 real time online graphs don't show
this problem caused cause of bad convert formats . exception handling added.
Bugfix :#1441 real time online graphs don't show
this problem caused cause of bad convert formats .
Bugfix: #1417 Minor Cleanup
Bugfix: #1417 Fix Load Balancing Functionality of IPPool Plugin
The `ippool_main.getLoader().getIPpoolByID` will return either an "IPPool" or "LoadBalancingIPPool" object. In later case the object has no `getContainer` method. Instead we use `setIPInPacket` method which is available in both objects and has the same functionality.
Cleanup: Removed ONLINE_CHECK_MULTI_LOGIN from advanced config as it was duplicate functionality with multi login plugin
BugFix: Failed logins should not be counted into multi login. Now allow up to 3 failed logins in addition to normal master instances.
Feature: #1317 Add ISP Filter to `getListOfCharges` Charge Action
Feature: #1317 Add ISP Filter to `getListOfGroups` Group Action
BugFix: IP Pool plugin was raising None if ip is not available in ippool anymore
Improvement: Can Stay Result now have 4 variables
Remaining Time: Charging and Authorization remaining Time Next Event Time: Used by plugins need to set a next event Improtatnt Event Time: This overrides MIN_USER_EVENT_TIME Remaining Bytes: Bytes remaining until next event
Improvement: Internet Reauthorizes which triggered auto recharge were rejected incorrectly
BugFix: Charge.getRuleWithID should return None if rule id does not exists
NewFeature: diameter_prevent_cctime_avalanche attribute in diameter ras controls if cc-time should be distributed across half of a update accounting time
NewFeature: Persistent charge rule cache to use a LFU cache for keeping applied charge rule data
BugFix: Diameter terminate would reset session dict by mistake
BugFix: Diameter response time can be higher than usual radius authentication
BugFix: Packet storage should not be opened in online worker due to performance penalty
NewFeature: Added support to specify unix socket or ip address of syslog through syslog_destination in config file
Bugfix: Fix Minor Bug
BugFix: Kill failed user if deposit has been changed in hope of auto renew or auto recharge
Improvement: added REQUIRE_INTERNAL_RELOGIN flag to AttributeHandler to control if internal relogin is required for updating the specific attribute. This will reduce number of internal relogins required
BugFix: IBSErrors are mostly login related and should not be logged in error.log
BugFix: Showing session id in mongo logs were not working
BugFix: Failed and Idle login automatic detection on re-online were not working
Cleanup: Removed unused DEBUG_ERRORS, DEBUG_WARNINGS, DEBUG_THREADS from defs and logging
Cleanup: Removed duplicate defs entries
Improvement: Allow changing including of seconds in date through advanced config
Revert "Bugfix :#1424 real time bw graph timeline problem"
This reverts commit ffc1ef6a7921c6aa205a50bb6d22a93318d5581b. Since graphs in Mongo branch work fine, we don't need this commit.
BugFix: _handlePacketResponse signature was changed while some usages were missing
Bugfix :#1436 change QOS defs propertis to accept string input
BugFix: Fix small memory and thread leak problem in thread wrappers
BugFix: Douran ras was using charging name to be passed as rating group. It should be extracted from sub service name
NewFeature: Reject cache configuration has been moved to ras attributes. [REJECT CACHE] Configuration section is now deprecated.
NewFeature: Diameter translated packets are now written into DIAMETER/diameter_translation.log instead of filling up RADIUS/auth.log
Improvement: Diameter packets will use new packet codes DiameterCCRInit,DiameterCCRUpdate,DiameterCCRTerm,DiameterCCASuccess,DiameterCCAFailure instead of radius ones
BugFix: True or False should not be used in defs variables. 1 or 0 should be used instead
Bugfix: Replace `__bool__` With `__nonzero__`
`__bool__` data model is replacement of `__nonzero__` in python 3.x; since we're still on python 2.x we have to still use `__nonzero__`
NewFeature: Support for setting cisco_isg_failed_method attribute of cisco isg ppp ras to FAILED_USER_L4 which causes failed user to have normal ip assignments
Bugfix :#1424 real time bw graph timeline problem
time line problem solved using utc time guide.
Improvement: don't log wrong password
Improvement: Show session id (unique_id_value in fact) in connection log report
Improvement: Show seconds by default in all reports
BugFix: if pkt was checking attributes length while it should be always true
Improvement: Log storage address in radius logs for debugging purpose
Improvement: Checkonline was running too fast causing Late Packets during it's run
Improvement: Better logging for packet storage
BugFix: Prevent double slashes for shared storage file paths
BugFix: threadpool terminate and close methods were not working
Improvement: Log ibs request id into radius log to make debugging easier
BugFix: In some situations, cisco pcef session did not stop after master session has been disconnected. Make sure the session is cleaned up by first sending pod if session pcef dict is not available and second optionally send a pod on each start packet
BugFix: Fixed a race condition that might cause packet storage files not to be deleted
Bugfix: #1367 search_expired_user.php check_all_users problem
multi select problem for users has been handled.
BugFix: Policy worker server log were not filtered
BugFix: snmp agent were not working due to xmlrpc limitations. Converted client to use jsonrpc instead
BugFix: snmp agent were not working due to xmlrpc limitations. Converted client to use jsonrpc instead
BugFix: Policy worker server log were not filtered
Cleanup: Refactor threadpool to be more efficient and simple. Also there would be no need to tune number of threads for different sizes of system as threadpool would grow automatically
Improvement: Do not log unnecessary attributes in connection log
Cleanup: Do not log soap handler registeration if debugging is off
Cleanup: Removed not migrated ras folder
BugFix: Exception Logs were written twice
BugFix: IP Conflict happens during re-online because conflicted session did not get kicked out
Improvement: Include seconds in date representation
Improvement: Timedelta representation for kill time is ugly. Use default date format instead
BugFix: Exception Logs were written twice
BugFix: IP Conflict happens during re-online because conflicted session did not get kicked out
Improvement: Include seconds in date representation
Improvement: Timedelta representation for kill time is ugly. Use default date format instead
تگ 376 تا 385 در تاریخ ۱۳۹۶/۰۴/۱۵
- Bugfix: #1408 Port call_id_blacklist plugin to C branch
- BugFix: Moved SOAP HTTP Server from builtin python library into a local library and swap select.select to poll.epoll
- BugFix: Stop priority should be higher
- BugFix: Fixed internal relogin might raise (harmless) error if called multiple times
- BugFix: Cisco VPDN was nagging incorrectly if user does not have in ras bw
- BugFix: Not finding session dict during session start is not an error and should not be reported as an error
- BugFix: Maximum reauthorize quotas did not apply if effective charge rule does not have CPMB
- BugFix: Cisco PCEF stop awareness should remove session from activated sessions
- BugFix: pass_remaining_volume and pass_remaining_duration ras attributes were not applied in cisco isg races
- BugFix: Internal Relogin would cause ip conflict if ippool is defined in user or charge level
- BugFix: Internal Relogin kill reason was lost due to not saving user state
- BugFix: Send service resync requests after internal_relogin with a delay to make sure all instances has been relogged in before resync
- Improvement: Clean up imports so unnecessary components would not be initialized in listener processes
- BugFix: User Worker Queue did not run requests in order which their arrived even if they had equivalent priority
- BugFix: ID generation was not working correctly for multiple processes. Fixed by separating port range of each radius worker
- Improvement: Cache time series dynamic register statistics to decrease redis hgetall calls
- BugFix: Python generators are not threadsafe causes some packet might not get a response
- BugFix: Fixed Acct-Session-Time was incorrectly interpreted for diameter ras
- Fixed missing diameter session would cause a recursive loop until next packet arrives
- BugFix: Fixed a race condition which might happen because isp online is no longer available
- BugFix: appendleft should not return the right most item. This is not the behaviour of python deque and perform an extra loads for each append
- BugFix: Radius runs out of threads for deployments with large amount of processes
- BugFix: Drop re-online request if user is already online
- NewFeature: Show Policy Worker Statistics in summary view page
- BugFix: TimeSeries was returning error if count of time based stat was zero
- NewFeature: Log Server Initiated Radius requests under /var/log/IBSng/RADIUS/server_initiated.log
- Improvement: Make onlines tables UNLOGGED to improve performance
- BugFix: Fix RedisDict might get into infinite loop during iterations
- BugFix: Relative expiration date was setting incorrect next event during canStay
- NewFeature: Implemented Rate limiter for ras kill, change service, coa and pcef provision server initiated requests
- BugFix: Defs change was not propagated through other processes
- BugFix: getAllStatsByStatCategory was not threadsafe
- BugFix: RedisDict iterators were not behaving correctly
- BugFix: Converted admin request limit to rratelimit library. The feature were not working before
- Improvement: Change print format to stand out between logs
- BugFix: Called-Station-Id was passing as service causing problem with charge rule matching
- Improvement: Sort rates dashboard widget values
- BugFix: Terminate Cause and Login Error rates were not working
- BugFix: Prevent unnecessary error logs
- Fix: Show Exact Value for ISP's on Online Users
- Feature : #1361 change the sub service qos name to limited drop down
change the sub service qos name to limited drop down options .
- BugFix: empty or 0.0.0.0 as xmlrpc bind ip would cause proxied request not to work
- Improvement: Logging support for snmp passpersist agent
- BugFix: Logrotate did not include POLICY_WORKER and DIAMETER logs so rotation did not happen for them leading to log folder getting full
- BugFix: Remove policy request queue generator as it was not thread safe leading to messed up state of queues
- Feature : #1360 edit charge priority from 1-10 to 1-50
edit charge priority to 1-50 and it's backend error and validation rules.
- BugFix: ignore_cpmb were not working on cpmb_download and cpmb_upload
- Improvement: Re-order if conditions to prevent unnecessary redis lookup
- BugFix: CheckOnline was too slow
- Improvement: Enable SUB_SERVICE_CHECK By default and disable syncing during re-online which puts high load on BRAS when IBSng service is restarted
- BugFix: Kill User if a COA activation failed on cisco ISG ras
- BugFix: Import library fixes in more locations to make sure it will be loaded in all processes before other libraries
- BugFix: Kairos might be initialized incorrectly because system redis library was imported instead of local one
- BugFix: no need to pass ip:addr-pool in cisco-avpair for in ras ippool to work. Fixes incompatibility with asr9k
تگ 375 تا 376 در تاریخ ۱۳۹۶/۰۳/۲۷
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
C_lan_diameter_mongo Branch
تگ 397 در تاریخ ۱۳۹۶/۰۶/۰۵
This branch is merge of C_lan_acc into C_diameter_mongo
C_lan_acc Branch
تگ 372 تا 374 در تاریخ ۱۳۹۶/۰۵/۲۳
Feature: #1146 Add New Permission "CHANGE USER LIMIT MAC"
From now on, only admins with specified permission can modify the limit mac attribute of users. This permission has "CHANGE USER ATTRIBUTES" permission as it's parent.
Feature: #1462 add failed online reason to user information page
if there was a reason for failed online it will be shown on user information page .
Bugfix: #1453 Check All Lines of "ntlm_auth" Result
Bugfix: #1417 Fix Load Balancing Functionality of IPPool Plugin
The `ippool_main.getLoader().getIPpoolByID` will return either an "IPPool" or "LoadBalancingIPPool" object. In later case the object has no `getContainer` method. Instead we use `setIPInPacket` method which is available in both objects and has the same functionality.
Feature: #1317 Add ISP Filter to `getListOfCharges` Charge Action
Feature: #1317 Add ISP Filter to `getListOfGroups` Group Action
Bugfix :#1436 change QOS defs propertis to accept string input
Bugfix :#1424 real time bw graph timeline problem
time line problem solved using utc time guide.
Improvement: don't log wrong password
Bugfix :#1426 top visited urls problem
direction to the urls has been edited .
Bugfix: #1367 search_expired_user.php check_all_users problem
multi select problem for users has been handled.
Bugfix: #1408 Port call_id_blacklist plugin to C branch
Bugfix: #1333 Fix Memory Leak on LDAP Sync Action
According to get several logs of different situations from server and analysing them, this problem has been occured on new thread (event.AddEvent). In "_startSync" method after fetching list of users, it set "self._startSync" in event for a period of time and problem starts from here. So to fix this issue, instead of spawing new threads for each domains on "event" class, we keep continue to use domains threads which created on IBS start up.
Fix: Show Exact Value for ISP's on Online Users
Feature : #1361 change the sub service qos name to limited drop down
change the sub service qos name to limited drop down options .
Feature : #1360 edit charge priority from 1-10 to 1-50
edit charge priority to 1-50 and it's backend error and validation rules.
تگ 371 تا 372 در تاریخ ۱۳۹۶/۰۳/۲۴
- Bugfix: Fix CSV Report of Web Analyser
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
- Feature : #1223 Modify 'urldump' sniffer application to fetch 'ip_map' data directly from IBSng
- Bugfix: Fix LDAP Permissions
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
- BugFix : #1263 fix urldump does'nt showing group name in web analyzer log
this bug fixed in the interface. it also fixed in real time web analyzer page.
- Bugfix: #1292 Fix Bulk Kill Action in Case of Choosing More Than One Group
When user chooses more than one group/isp/etc in Search User panel and selects bulk kill action it raises and error. It was because of invalid format of passing parameters.
- Cleanup: We Don't Have `web_analyzer_log` Table Any More
Also raised an error when we wanted to delete a user on deleting web analyzer logs, because there is no such table available any more
- Bugfix: Fix Minor Typo Error
- Bugfix: #1235 Fix Minor Invoicing DB Bug
Column reference to 'pi_issue_date' was ambiguous!
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
Resolving 'max_rule_time_usage' charg rule to be read from user custome field (e.g: 'F:time') haven't been handled.
- Bugfix: #1215 Fix Timezone Issue in Online Graph
تگ 369 تا 371 در تاریخ ۱۳۹۵/۱۲/۱۰
- Bugfix: Fix Active Leaves
The `getActiveLeaves` method must be called in 'MAIN' process.
- BugFix: We should not add internal_relogin flag to user attributes
- BugFix: Various Internal Relogin fixes
- Improvement: Make sure listen loop won't exit on an abnormal exception
- BugFix: Setting max rule traffic usage value as a float in custom fields would have break max rule traffic plugin
- Improvement: Disable Partitioning Check Contraints
This is done because of some efficiency issues
- Improvement: Disable adding check constraint to partitioned tables
- BugFix: We should ignore negative threshold when QV is passed to cisco isg
- BugFix: A mid session reauthorize after a restart will create an instance without start accounting
- BugFix: Do not panic if charge rule is None during stop session
- BugFix: Not saving user after logout will lead to inconsistent user object
- BugFix: Take credit limit into account when calculating remaining bytes. This fixes postpaid user problem with isg prepaid services
- Improvement: Kill max delay default value was too large. Set it to 2 hours by default
- Improvement: Make auth rate control optional and turn it off by default
- Bugfix: #1512 Fix `int` Convertion of `float` String
- Bugfix: #1449 Fix `users.group_id` Bug
Fixed `getDBColName` in a way which returns the part after the dot, e.g 'usersgroup_id' => 'group_id'
- Bugfix: #1449 Fix Ambiguous Fields `user_id` and `group_id` in Management Summary Report
After adding two columns `user_id` and `group_id` to `connection_log` table it created a conflict with `users` table on in management summary queries; in this fix we change SQL queries to exactly specify which fields we mean by `user_id` and `group_id`: `users.user_id`, `users.group_id`, etc.
- Bugfix: add missing function call on commit of periodic acc plugin
- Bugfix: #1503 Fix MAC Extraction From RAS of ZTE Type
ZTE model rases change the format of user mac address in recent framework update, e.g: old format: `78d99fd34e4b` new format: `78:d9:9f:d3:4e:4b`
- Improvement: Few logging for radius process
- BugFix: Reauthorize bytes were deducted twice from remaining bytes
- BugFix: Do not start accounting on reauthorize. Removes lots of nagging about online dic not found in error log
- Improvement: Make sure we never return a quota of 0 in case of a successful reauthorize
- Improvement: Run internal relogin with same priority as auth. Long queues might cause WS request to return while task has not been done yet
- BugFix: reauthorize_used_bytes should be used bytes from last update and not from start of session. Fixed premature QV0 while user still has credit.
- Bugfix: don't assign ip to sub service
- Bugfix: skip users without ignore_ras
- Feature: Add support for cisco_isg_max_reauthorize_mbytes and cisco_isg_max_reauthorize_minutes attributes to force reauthorize after a certain threshold
- Feature: Multiple prepaid services per account support
- BugFix: Max Rule Traffic Usage were not working correctly with multiple rules sharing one value (and custom field) and multiple instances using them
- BugFix: Onlines table in single user info page were became messed up after first ajax based refresh
- BugFix: Multi login did not work with Multi Service rases other than ISG
- Bugfix: #1452 Fix/Update Deprecated Links in Graph Menu
The following links are deprecated and removed: All Realtime Graph Internet Realtime Graph Voip Realtime Graph BW Realtime Graph Also updated modified links
- Improvement: Failure to change sub services (ex. failed COA) should be detected. Also resync services after internal relogin to make sure we have correct services
- Bugfix: #1136 Fix Name of Import File in Import User Menu
Note: after changing the log process to pass the logging mechanism to python syslog module, user_import logs won't be written to a local file which will cause to "View Import Log" link on "Import User" page after uploading CSV file won't work. this can be fixed by adding new log type (aside `QueueLogger` and `DirectLogger`) to IBS logger module, but this is not a priority now; look at the comments on changed files for more info.
- BugFix: Re-Onlined users might have get failed status due to left over from previous sessions
- BugFix: Radius Attributes with integer values were not working in charge rule attribute radius
- Improvement: Allow Acct-Interim-Interval to be passed to failed users
- Improvement: Exception handling for internal relogin
- BugFix: Removed Extra print
- Bugfix: Incorrect call to getUserAttrs caused exception
- BugFix: Some initial variables where missing in configuration file and advanced configuration
- BugFix: Undefined session raised unnecessary exception
- Improvement: API cleanups for cisco isg rases
- Bugfix: cast ignore ras ids to int
- Bugfix: read min/max event time directly from defs
- Bugfix: fix group usages of connection analysis
- Improvement: Remove `price` Filter From User ID Attribute
- Feature: Add User ID Attribute to Search User Page
- BugFix: Threshold Bytes/Seconds did not trigger internal reauthorize due to bad merge
- BugFix: Second username change fail in case of internal relogin
- Improvement: get method for SNMP client
- Feature: optionally do autoRenew on abs expired user
- Bugfix: log deposit_type in deposit change
- Cleanup: clean md5 response
تگ 359 تا 360 در تاریخ ۱۳۹۵/۱۱/۱۶
- Bugfix: add removed ad user info in comment tab
- Bugfix: affect search base for paged searches
C_lan_mongo Branch
تگ 371 تا 372 در تاریخ ۱۳۹۶/۰۳/۲۷
- Bugfix: Fix CSV Report of Web Analyser
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
- Feature: #1223 Modify 'urldump' sniffer application to fetch 'ip_map' data directly from IBSng
- Bugfix: Fix LDAP Permissions
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
- BugFix : #1263 fix urldump does'nt showing group name in web analyzer log
this bug fixed in the interface. it also fixed in real time web analyzer page.
- Bugfix: #1292 Fix Bulk Kill Action in Case of Choosing More Than One Group
When user chooses more than one group/isp/etc in Search User panel and selects bulk kill action it raises and error. It was because of invalid format of passing parameters.
- Improvement: #1186 Run mongo index in thread
- Improvement: #1186 Run mongo index in thread
- Cleanup: We Don't Have `web_analyzer_log` Table Any More
Also raised an error when we wanted to delete a user on deleting web analyzer logs, because there is no such table available any more
- Bugfix: #1235 Fix Minor Invoicing DB Bug
- Bugfix: Fix Minor Typo Error
- Bugfix: #1235 Fix Minor Invoicing DB Bug
Column reference to 'pi_issue_date' was ambiguous!
- Bugfix: Correct Delete Query of Redundant Partial Log Records
- Improvement: Read From Config File Whether to Write on PSQL or Not
Until now we read `defs.PSQL_LOG_CONNECTIONS` value to define whether we should write connection logs into PostgreSQL or not. With this commit value of `connection_log_use_psql` in `DATABASE_MONGO` section of IBSng config file defines our behaviour.
- Bugfix: #1231 Fix Total Values of User Connection Logs Panel
Before migrating to MongoDB we used "1" to indicate whether to show total values in connection log report or not, but after migration we used "On"!!, this has been handled in this commit to work with both of them.
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
Resolving 'max_rule_time_usage' charg rule to be read from user custome field (e.g: 'F:time') haven't been handled.
- Bugfix: #1201 Fix Slow Start of IBSng and Multiple Partial Log
- Improvement: #1154 Add More Log in Case of Bulk Write Error
- Bugfix: #1215 Fix Timezone Issue in Online Graph
- Bugfix: #1201 Fix Slow Start of IBSng and Multiple Partial Log
It has been seen that the number of online user doesn't match the records count on partial data table, it will result in slow start of IBSng (in recover partial log phase). This commit will fix this issue and makes some improvement on writing partial log data.
- Improvement: Optimized partial log recovery for postgresql. Not exists queries are much more efficient for large inner queries with index
- BugFix: Internal relogin cleanup and bug fixes
- Improvement: Increased default max thresholds to decrease the load on ras and ibs
- Bugfix: #1474 remove please wait in report pages
removing blockui javascrpit code which caused please wait deadlock in report pages
C_lan_acc_staging Branch
تگ 371 تا 372 در تاریخ ۱۳۹۶/۰۳/۲۷
- Bugfix: Fix CSV Report of Web Analyser
- Bugfix: #1339 Load Invoice Main in Online Worker
- Bugfix : #1300 delete realtime request log interface
real time request log deleted from interface because the source code of this link had been deleted before .
- Bugfix: #1339 Load Invoice Main in Online Worker
- Feature : #1223 Modify 'urldump' sniffer application to fetch 'ip_map' data directly from IBSng
- Bugfix: Fix LDAP Permissions
- Bugfix: #1278 Fix Account Not Started Counter
When "account not started" counter got negative value, IBSng web panel shown "0*" value that means negative number. The main reason for this issue was when a user had several sub services, it tried to decrease counter per each of them (when their requests received), while it increased counter once on authentication action. So to solve this issue, we handled __decreamentNotStartedCounter method which check loaded user's instance that must be Master to run decrease action. Example diagram for this issue: Step1: Authentication +1 << Correct Step2: Master -1 << Correct Step3: Free-Site -1 << Incorrect StepN: SubServiceN -1 << Incorrect StepX: SubServiceX -1 << Incorrect
- BugFix : #1263 fix urldump does'nt showing group name in web analyzer log
this bug fixed in the interface. it also fixed in real time web analyzer page.
- BugFix: reloadUser without wait for lock caused infinite loop
- BugFix: Online User Storage must be flushed during IBSng start up
- Cleanup: Cleaned up check online method
- BugFix: Fixed reloadUser might incorrectly run while lock has not been acquired
- BugFix: Redis might incorrectly reset pubsub in busy situations
- BugFix: Credit Limit was displayed incorrectly
- BugFix: Mutable object should not be passed as default argument
- BugFix: Fix Relogin User Issue On Update Custom Field
- Bugfix: #1292 Fix Bulk Kill Action in Case of Choosing More Than One Group
When user chooses more than one group/isp/etc in Search User panel and selects bulk kill action it raises and error. It was because of invalid format of passing parameters.
- Bugfix: #1283 Add Back Missing LDAP SOAP Functions
Some of LDAP SOAP functions have been deleted mistakenly in previous merges.
- BugFix: mp observer change in isp loader caused isp states to reset
- BugFix: unload/load instead of reload causes race condition where isp object is no longer available
- Cleanup: We Don't Have `web_analyzer_log` Table Any More
Also raised an error when we wanted to delete a user on deleting web analyzer logs, because there is no such table available any more
- BugFix: Online user storage were using incorrect redis db
- Bugfix: #1235 Fix Minor Invoicing DB Bug
Column reference to 'pi_issue_date' was ambiguous!
- Cleanup: Remove Unused Method `__renewMustResetCredit`
- BugFix: Kairos might be initialized incorrectly because system redis library was imported instead of local one
- BugFix: Fixed Typo which cause isp deposit role back not to work correctly
- BugFix: __internetReauthorizeCheckForIncorrectSubService was not working due to typo
- BugFix: Fix memory leak of web service process by replacing cyclic-reference-creator collections.OrderedDict with odict.odict in kairos library
- BugFix: Consume ISP deposit was broken after Internal Relogin. Fix to always reload ISP and log after consuming deposit.
- Bugfix: #1228 Fix Max Time Usage Charge From Custom Field
Resolving 'max_rule_time_usage' charg rule to be read from user custome field (e.g: 'F:time') haven't been handled.
- BugFix: Duplicate detector was not caching reply packets and never replay them
- Bugfix: Remove Remaining Partitioning Check Code
Since we don't check for partitioning capability of PostgreSQL any more (see recent commits) we don't need this any more.
- Bugfix: #1215 Fix Timezone Issue in Online Graph
- Bugfix: Remove Calling Deleted Module
- Improvement: Log next event and kill dict in can stay event of log console
- BugFix: Prevent maximum threshold minutes might have caused avalanche situtation, causing cisco ISG bras to overload
- BugFix: Use Acct-Session-Id in kick user via coa instead of Cisco-Account-Info
- BugFix: Internal relogin cleanup and bug fixes
- Improvement: Increased default max thresholds to decrease the load on ras and ibs
- Cleanup: Change RAS Name 'Wireless' to '4ipnet'
- Cleanup: SOAP Cleanup
- Feature: add isp mapping from LDAP
- Feature: add send_lock_users capability to notification rules
- Improvement: use whenchanged attribute in ldap query
تگ 360 تا 371 در تاریخ ۱۳۹۵/۱۲/۱۰
- Bugfix: Fix Active Leaves
The `getActiveLeaves` method must be called in 'MAIN' process.
- BugFix: We should not add internal_relogin flag to user attributes
- BugFix: Various Internal Relogin fixes
- Improvement: Make sure listen loop won't exit on an abnormal exception
- BugFix: Setting max rule traffic usage value as a float in custom fields would have break max rule traffic plugin
- Improvement: Disable Partitioning Check Contraints
This is done because of some efficiency issues
- Improvement: Disable adding check constraint to partitioned tables
- BugFix: We should ignore negative threshold when QV is passed to cisco isg
- BugFix: A mid session reauthorize after a restart will create an instance without start accounting
- BugFix: Do not panic if charge rule is None during stop session
- BugFix: Not saving user after logout will lead to inconsistent user object
- BugFix: Take credit limit into account when calculating remaining bytes. This fixes postpaid user problem with isg prepaid services
- Improvement: Kill max delay default value was too large. Set it to 2 hours by default
- Improvement: Make auth rate control optional and turn it off by default
- Bugfix: #1512 Fix `int` Convertion of `float` String
- Bugfix: #1449 Fix `users.group_id` Bug
Fixed `getDBColName` in a way which returns the part after the dot, e.g 'usersgroup_id' => 'group_id'
- Bugfix: #1449 Fix Ambiguous Fields `user_id` and `group_id` in Management Summary Report
After adding two columns `user_id` and `group_id` to `connection_log` table it created a conflict with `users` table on in management summary queries; in this fix we change SQL queries to exactly specify which fields we mean by `user_id` and `group_id`: `users.user_id`, `users.group_id`, etc.
- Bugfix: add missing function call on commit of periodic acc plugin
- Bugfix: #1503 Fix MAC Extraction From RAS of ZTE Type
ZTE model rases change the format of user mac address in recent framework update, e.g: old format: `78d99fd34e4b` new format: `78:d9:9f:d3:4e:4b`
- Improvement: Few logging for radius process
- BugFix: Reauthorize bytes were deducted twice from remaining bytes
- BugFix: Do not start accounting on reauthorize. Removes lots of nagging about online dic not found in error log
- Improvement: Make sure we never return a quota of 0 in case of a successful reauthorize
- Improvement: Run internal relogin with same priority as auth. Long queues might cause WS request to return while task has not been done yet
- BugFix: reauthorize_used_bytes should be used bytes from last update and not from start of session. Fixed premature QV0 while user still has credit.
- Bugfix: don't assign ip to sub service
- Bugfix: skip users without ignore_ras
- Feature: Add support for cisco_isg_max_reauthorize_mbytes and cisco_isg_max_reauthorize_minutes attributes to force reauthorize after a certain threshold
- Feature: Multiple prepaid services per account support
- BugFix: Max Rule Traffic Usage were not working correctly with multiple rules sharing one value (and custom field) and multiple instances using them
- BugFix: Onlines table in single user info page were became messed up after first ajax based refresh
- BugFix: Multi login did not work with Multi Service rases other than ISG
- Bugfix: #1452 Fix/Update Deprecated Links in Graph Menu
The following links are deprecated and removed: All Realtime Graph Internet Realtime Graph Voip Realtime Graph BW Realtime Graph Also updated modified links
- Improvement: Failure to change sub services (ex. failed COA) should be detected. Also resync services after internal relogin to make sure we have correct services
- Bugfix: #1136 Fix Name of Import File in Import User Menu
Note: after changing the log process to pass the logging mechanism to python syslog module, user_import logs won't be written to a local file which will cause to "View Import Log" link on "Import User" page after uploading CSV file won't work. this can be fixed by adding new log type (aside `QueueLogger` and `DirectLogger`) to IBS logger module, but this is not a priority now; look at the comments on changed files for more info.
- BugFix: Re-Onlined users might have get failed status due to left over from previous sessions
- BugFix: Radius Attributes with integer values were not working in charge rule attribute radius
- Improvement: Allow Acct-Interim-Interval to be passed to failed users
- Improvement: Exception handling for internal relogin
- BugFix: Removed Extra print
- Bugfix: Incorrect call to getUserAttrs caused exception
- BugFix: Some initial variables where missing in configuration file and advanced configuration
- BugFix: Undefined session raised unnecessary exception
- Improvement: API cleanups for cisco isg rases
- Bugfix: cast ignore ras ids to int
- Bugfix: read min/max event time directly from defs
- Bugfix: fix group usages of connection analysis
- Improvement: Remove `price` Filter From User ID Attribute
- Feature: Add User ID Attribute to Search User Page
- BugFix: Threshold Bytes/Seconds did not trigger internal reauthorize due to bad merge
- BugFix: Second username change fail in case of internal relogin
- Improvement: get method for SNMP client
- Feature: optionally do autoRenew on abs expired user
- Bugfix: log deposit_type in deposit change
- Cleanup: clean md5 response
تگ 359 تا 360 در تاریخ ۱۳۹۵/۱۱/۱۶
- Bugfix: add removed ad user info in comment tab
- Bugfix: affect search base for paged searches