mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	res_pjsip: Add DTMF INFO Failback mode
The existing auto dtmf mode reverts to inband if 4733 fails to be negotiated. This patch adds a new mode auto_info which will switch to INFO instead of inband if 4733 is not available. ASTERISK-27066 #close Change-Id: Id185b11e84afd9191a2f269e8443019047765e91
This commit is contained in:
		
				
					committed by
					
						 George Joseph
						George Joseph
					
				
			
			
				
	
			
			
			
						parent
						
							45df25a579
						
					
				
				
					commit
					fb7247c57c
				
			| @@ -0,0 +1,57 @@ | ||||
| """Add auto_info to endpoint dtmf_mode | ||||
|  | ||||
| Revision ID: 164abbd708c | ||||
| Revises: 86bb1efa278d | ||||
| Create Date: 2017-06-19 13:55:15.354706 | ||||
|  | ||||
| """ | ||||
|  | ||||
| # revision identifiers, used by Alembic. | ||||
| revision = '164abbd708c' | ||||
| down_revision = '86bb1efa278d' | ||||
|  | ||||
| from alembic import op | ||||
| import sqlalchemy as sa | ||||
|  | ||||
| OLD_ENUM = ['rfc4733', 'inband', 'info', 'auto'] | ||||
| NEW_ENUM = ['rfc4733', 'inband', 'info', 'auto', 'auto_info'] | ||||
|  | ||||
| old_type = sa.Enum(*OLD_ENUM, name='pjsip_dtmf_mode_values_v2') | ||||
| new_type = sa.Enum(*NEW_ENUM, name='pjsip_dtmf_mode_values_v3') | ||||
|  | ||||
| def upgrade(): | ||||
|     context = op.get_context() | ||||
|  | ||||
|     # Upgrading to this revision WILL clear your directmedia values. | ||||
|     if context.bind.dialect.name != 'postgresql': | ||||
|         op.alter_column('ps_endpoints', 'dtmf_mode', | ||||
|                         type_=new_type, | ||||
|                         existing_type=old_type) | ||||
|     else: | ||||
|         enum = ENUM('rfc4733', 'inband', 'info', 'auto', 'auto_info', | ||||
|                     name='pjsip_dtmf_mode_values_v3') | ||||
|         enum.create(op.get_bind(), checkfirst=False) | ||||
|  | ||||
|         op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE' | ||||
|                    ' pjsip_dtmf_mode_values_v3 USING' | ||||
|                    ' dtmf_mode::text::pjsip_dtmf_mode_values_v3') | ||||
|  | ||||
|         ENUM(name="pjsip_dtmf_mode_values_v2").drop(op.get_bind(), checkfirst=False) | ||||
|  | ||||
| def downgrade(): | ||||
|     context = op.get_context() | ||||
|  | ||||
|     if context.bind.dialect.name != 'postgresql': | ||||
|         op.alter_column('ps_endpoints', 'dtmf_mode', | ||||
|                         type_=old_type, | ||||
|                         existing_type=new_type) | ||||
|     else: | ||||
|         enum = ENUM('rfc4733', 'inband', 'info', 'auto', | ||||
|                     name='pjsip_dtmf_mode_values_v2') | ||||
|         enum.create(op.get_bind(), checkfirst=False) | ||||
|  | ||||
|         op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE' | ||||
|                    ' pjsip_dtmf_mode_values USING' | ||||
|                    ' dtmf_mode::text::pjsip_dtmf_mode_values_v2') | ||||
|  | ||||
|         ENUM(name="pjsip_dtmf_mode_values_v3").drop(op.get_bind(), checkfirst=False) | ||||
		Reference in New Issue
	
	Block a user