mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 04:30:28 +00:00
contrib/script/sip_to_pjsip: add support for realtime
Add a new script that can read from legacy realtime peers & generate an sql file for populating pjsip endpoints, identify, and aor records. ASTERISK-27348 #close Change-Id: Idd3d7968a3c9c3ee7936d21acbdaf001b429bf65
This commit is contained in:
committed by
Matthew Fredrickson
parent
4568894d2a
commit
976afd26ab
81
contrib/scripts/sip_to_pjsip/sip_to_pjsql.py
Executable file
81
contrib/scripts/sip_to_pjsip/sip_to_pjsql.py
Executable file
@@ -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)
|
||||
|
Reference in New Issue
Block a user