summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorAlexander Traud <pabstraud@compuserve.com>2016-08-18 15:14:36 +0200
committerAlexander Traud <pabstraud@compuserve.com>2016-08-18 08:27:59 -0500
commit60275359bc6646a6000dbaf1e262763f409fb6fe (patch)
tree5768ce6884d673cdf44da06080cf55976ab2c052 /contrib
parent56e0aed17758b1cad338e84c5457824cee874d95 (diff)
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
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/scripts/sip_to_pjsip/sip_to_pjsip.py17
1 files changed, 12 insertions, 5 deletions
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):
"""