mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-22 20:56:39 +00:00 
			
		
		
		
	res_pjsip: return all codecs on a re-INVITE without SDP
Currently chan_pjsip on receiving a re-INVITE without SDP will only return the codecs that are previously negotiated and not offering all enabled codecs. This causes interoperability issues with different equipment (e.g. from Cisco) for some of our customers and probably also in other scenarios involving 3PCC infrastructure. According to RFC 3261, section 14.2 we SHOULD return all codecs on a re-INVITE without SDP The PR proposes a new parameter to configure this behaviour: all_codecs_on_empty_reinvite. It includes the code, documentation, alembic migrations, CHANGES file and example configuration additions. ASTERISK-30193 #close Change-Id: I69763708d5039d512f391e296ee8a4d43a1e2148
This commit is contained in:
		
				
					committed by
					
						 George Joseph
						George Joseph
					
				
			
			
				
	
			
			
			
						parent
						
							005b6c8d50
						
					
				
				
					commit
					7b2d3a6411
				
			| @@ -0,0 +1,37 @@ | ||||
| """all_codecs_on_empty_reinvite | ||||
|  | ||||
| Revision ID: ccf795ee535f | ||||
| Revises: 539f68bede2c | ||||
| Create Date: 2022-09-28 09:14:36.709781 | ||||
|  | ||||
| """ | ||||
|  | ||||
| # revision identifiers, used by Alembic. | ||||
| revision = 'ccf795ee535f' | ||||
| down_revision = '417c0247fd7e' | ||||
|  | ||||
| from alembic import op | ||||
| import sqlalchemy as sa | ||||
| from sqlalchemy.dialects.postgresql import ENUM | ||||
|  | ||||
| AST_BOOL_NAME = 'ast_bool_values' | ||||
| # We'll just ignore the n/y and f/t abbreviations as Asterisk does not write | ||||
| # those aliases. | ||||
| AST_BOOL_VALUES = [ '0', '1', | ||||
|                     'off', 'on', | ||||
|                     'false', 'true', | ||||
|                     'no', 'yes' ] | ||||
|  | ||||
| def upgrade(): | ||||
|     ############################# Enums ############################## | ||||
|  | ||||
|     # ast_bool_values has already been created, so use postgres enum object | ||||
|     # type to get around "already created" issue - works okay with mysql | ||||
|     ast_bool_values = ENUM(*AST_BOOL_VALUES, name=AST_BOOL_NAME, create_type=False) | ||||
|  | ||||
|     op.add_column('ps_globals', sa.Column('all_codecs_on_empty_reinvite', ast_bool_values)) | ||||
|  | ||||
| def downgrade(): | ||||
|     if op.get_context().bind.dialect.name == 'mssql': | ||||
|         op.drop_constraint('ck_ps_globals_all_codecs_on_empty_reinvite_ast_bool_values', 'ps_globals') | ||||
|     op.drop_column('ps_globals', 'all_codecs_on_empty_reinvite') | ||||
		Reference in New Issue
	
	Block a user