mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	res_pjsip_registrar: Remove unavailable contacts if exceeds max_contacts
The behavior of max_contacts and remove_existing are connected. If remove_existing is enabled, the soonest expiring contacts are removed. This may occur when there is an unavailable contact. Similarly, when remove_existing is not enabled, registrations from good endpoints are rejected in favor of retaining unavailable contacts. This commit adds a new AOR option remove_unavailable, and the effect of this setting will depend on remove_existing. If remove_existing is set to no, we will still remove unavailable contacts when they exceed max_contacts, if there are any. If remove_existing is set to yes, we will prioritize the removal of unavailable contacts before those that are expiring soonest. ASTERISK-29525 Change-Id: Ia2711b08f2b4d1177411b1be23e970d7fdff5784
This commit is contained in:
		
				
					committed by
					
						
						Friendly Automation
					
				
			
			
				
	
			
			
			
						parent
						
							35a94ec708
						
					
				
				
					commit
					6a04c43035
				
			@@ -0,0 +1,30 @@
 | 
			
		||||
"""pjsip create remove_unavailable
 | 
			
		||||
 | 
			
		||||
Revision ID: f56d79a9f337
 | 
			
		||||
Revises: c20d6e3992f4
 | 
			
		||||
Create Date: 2021-07-28 02:09:11.082061
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
# revision identifiers, used by Alembic.
 | 
			
		||||
revision = 'f56d79a9f337'
 | 
			
		||||
down_revision = 'c20d6e3992f4'
 | 
			
		||||
 | 
			
		||||
from alembic import op
 | 
			
		||||
import sqlalchemy as sa
 | 
			
		||||
from sqlalchemy.dialects.postgresql import ENUM
 | 
			
		||||
 | 
			
		||||
AST_BOOL_NAME = 'ast_bool_values'
 | 
			
		||||
AST_BOOL_VALUES = [ '0', '1',
 | 
			
		||||
                    'off', 'on',
 | 
			
		||||
                    'false', 'true',
 | 
			
		||||
                    'no', 'yes' ]
 | 
			
		||||
 | 
			
		||||
def upgrade():
 | 
			
		||||
    ast_bool_values = ENUM(*AST_BOOL_VALUES, name=AST_BOOL_NAME, create_type=False)
 | 
			
		||||
    op.add_column('ps_aors', sa.Column('remove_unavailable', ast_bool_values))
 | 
			
		||||
 | 
			
		||||
def downgrade():
 | 
			
		||||
    op.drop_column('ps_aors', 'remove_unavailable')
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user