res_pjsip_endpoint_identifier_ip: Add support for SRV lookups.

This change implements SRV support for the IP based endpoint
identifier module. All possible addresses through SRV are looked
up and added as matches. If no SRV records are available a
fallback to normal host resolution is done. If an IP address
is provided then no SRV lookup occurs.

This is configured using the "srv_lookups" option on the
identify section and defaults to "yes".

ASTERISK-26693

Change-Id: I6b641e275bf96629320efa8b479737062aed82ac
This commit is contained in:
Joshua Colp
2017-01-05 12:11:43 +00:00
parent 6962a13466
commit a7d856cd96
3 changed files with 133 additions and 20 deletions

View File

@@ -0,0 +1,31 @@
"""add srv_lookups to identify
Revision ID: 28ab27a7826d
Revises: 4468b4a91372
Create Date: 2017-01-06 14:53:38.829655
"""
# revision identifiers, used by Alembic.
revision = '28ab27a7826d'
down_revision = '4468b4a91372'
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects.postgresql import ENUM
YESNO_NAME = 'yesno_values'
YESNO_VALUES = ['yes', 'no']
def upgrade():
############################# Enums ##############################
# yesno_values have already been created, so use postgres enum object
# type to get around "already created" issue - works okay with mysql
yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
op.add_column('ps_endpoint_id_ips', sa.Column('srv_lookups', yesno_values))
def downgrade():
op.drop_column('ps_endpoint_id_ips', 'srv_lookups')