summaryrefslogtreecommitdiff
path: root/contrib/scripts/sip_to_pjsip/sip_to_pjsql.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/scripts/sip_to_pjsip/sip_to_pjsql.py')
-rwxr-xr-xcontrib/scripts/sip_to_pjsip/sip_to_pjsql.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/contrib/scripts/sip_to_pjsip/sip_to_pjsql.py b/contrib/scripts/sip_to_pjsip/sip_to_pjsql.py
new file mode 100755
index 000000000..d93bca500
--- /dev/null
+++ b/contrib/scripts/sip_to_pjsip/sip_to_pjsql.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+
+from sip_to_pjsip import cli_options
+from sip_to_pjsip import convert
+import sip_to_pjsip
+import optparse
+
+
+import sqlconfigparser
+
+
+def write_pjsip(filename, pjsip, non_mappings):
+ """
+ Write pjsip.sql file to disk
+ """
+ try:
+ with open(filename, 'wt') as fp:
+ pjsip.write(fp)
+
+ except IOError:
+ print "Could not open file ", filename, " for writing"
+
+def cli_options():
+ """
+ Parse command line options and apply them. If invalid input is given,
+ print usage information
+
+ """
+ global user
+ global password
+ global host
+ global port
+ global database
+ global table
+
+ usage = "usage: %prog [options] [input-file [output-file]]\n\n" \
+ "Converts the chan_sip configuration input-file to mysql output-file.\n" \
+ "The input-file defaults to 'sip.conf'.\n" \
+ "The output-file defaults to 'pjsip.sql'."
+ parser = optparse.OptionParser(usage=usage)
+ parser.add_option('-u', '--user', dest='user', default="root",
+ help='mysql username')
+ parser.add_option('-p', '--password', dest='password', default="root",
+ help='mysql password')
+ parser.add_option('-H', '--host', dest='host', default="127.0.0.1",
+ help='mysql host ip')
+ parser.add_option('-P', '--port', dest='port', default="3306",
+ help='mysql port number')
+ parser.add_option('-D', '--database', dest='database', default="asterisk",
+ help='mysql port number')
+ parser.add_option('-t', '--table', dest='table', default="sippeers",
+ help='name of sip realtime peers table')
+
+ options, args = parser.parse_args()
+
+ user = options.user
+ password = options.password
+ host = options.host
+ port = options.port
+ database = options.database
+ table = options.table
+
+ sip_filename = args[0] if len(args) else 'sip.conf'
+ pjsip_filename = args[1] if len(args) == 2 else 'pjsip.sql'
+
+ return sip_filename, pjsip_filename
+
+if __name__ == "__main__":
+ sip_filename, pjsip_filename = cli_options()
+ sip = sqlconfigparser.SqlConfigParser(table)
+ sip_to_pjsip.sip = sip
+ sip.connect(user,password,host,port,database)
+ print 'Please, report any issue at:'
+ print ' https://issues.asterisk.org/'
+ print 'Reading', sip_filename
+ sip.read(sip_filename)
+ print 'Converting to PJSIP realtime sql...'
+ pjsip, non_mappings = convert(sip, pjsip_filename, dict(), False)
+ print 'Writing', pjsip_filename
+ write_pjsip(pjsip_filename, pjsip, non_mappings)
+