From 60275359bc6646a6000dbaf1e262763f409fb6fe Mon Sep 17 00:00:00 2001 From: Alexander Traud Date: Thu, 18 Aug 2016 15:14:36 +0200 Subject: 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 --- contrib/scripts/sip_to_pjsip/sip_to_pjsip.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'contrib') diff --git a/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py index 890921673..5eb6598dc 100755 --- a/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py +++ b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py @@ -907,6 +907,17 @@ class Registration: the right of the user, then finish by using rpartition calls to remove 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(':') if (colons == 3): # :domainport:secret:authuser @@ -927,11 +938,7 @@ class Registration: # Invalid setting raise - pre_domain, 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' + self.user, sep, self.domain = pre_auth.partition('@') def write(self, pjsip, nmapped): """ -- cgit v1.2.3