sip_to_pjsip: Parse register even with transport.

When using the migration script sip_to_pjsip.py and the register string
started with a transport in sip.conf - like tls://... - register was not parsed
correctly and therefore not migrated correctly to pjsip.conf.

ASTERISK-22374

Change-Id: I44c12104eea2bd8558ada6d25d77edfecd92edd2
This commit is contained in:
Alexander Traud
2016-08-18 15:14:36 +02:00
parent 56e0aed177
commit 60275359bc

View File

@@ -907,6 +907,17 @@ class Registration:
the right of the user, then finish by using rpartition calls to remove the right of the user, then finish by using rpartition calls to remove
everything to the left of the user. everything to the left of the user.
""" """
self.peer = ''
self.protocol = 'udp'
protocols = ['udp', 'tcp', 'tls']
for protocol in protocols:
position = user_part.find(protocol + '://')
if -1 < position:
post_transport = user_part[position + 6:]
self.peer, sep, self.protocol = user_part[:position + 3].rpartition('?')
user_part = post_transport
break
colons = user_part.count(':') colons = user_part.count(':')
if (colons == 3): if (colons == 3):
# :domainport:secret:authuser # :domainport:secret:authuser
@@ -927,11 +938,7 @@ class Registration:
# Invalid setting # Invalid setting
raise raise
pre_domain, sep, self.domain = pre_auth.partition('@') self.user, sep, self.domain = pre_auth.partition('@')
self.peer, sep, post_peer = pre_domain.rpartition('?')
transport, sep, self.user = post_peer.rpartition('://')
self.protocol = transport if transport else 'udp'
def write(self, pjsip, nmapped): def write(self, pjsip, nmapped):
""" """