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 b35779c6c6
commit 3eb02235f5

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):
""" """