<p>Pascal Cadotte Michaud has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/10546">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">contrib/sip_to_pjsip: add a --quiet option to avoid prints<br><br>Using the --quiet or -q option in conjonction with /dev/stdout as the output<br>file allow the output to be used as a valid configuration.<br><br>Given a script that generates a valid sip.conf I can pipe the output of that<br>script into `sip_to_pjsip.py -q /dev/stdin /dev/stdout`. This allow me to use<br>that piped command in my pjsip.conf using the `exec` command.<br><br>Change-Id: I7b0e2e90e2549f3f8e01dc96701f111b5874c88d<br>---<br>M contrib/scripts/sip_to_pjsip/sip_to_pjsip.py<br>1 file changed, 28 insertions(+), 12 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/46/10546/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py</span><br><span>index d05f97d..3228da2 100755</span><br><span>--- a/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py</span><br><span>+++ b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py</span><br><span>@@ -1,5 +1,7 @@</span><br><span> #!/usr/bin/env python</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+import logging</span><br><span style="color: hsl(120, 100%, 40%);">+import sys</span><br><span> import optparse</span><br><span> import socket</span><br><span> try:</span><br><span>@@ -11,6 +13,8 @@</span><br><span> </span><br><span> PREFIX = 'pjsip_'</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+logger = logging.getLogger(__name__)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ###############################################################################</span><br><span> ### some utility functions</span><br><span> ###############################################################################</span><br><span>@@ -101,7 +105,7 @@</span><br><span>             else:</span><br><span>                 merge_value(key, val, section, pjsip, nmapped, type, section_to, key_to)</span><br><span>         except LookupError:</span><br><span style="color: hsl(0, 100%, 40%);">-            print("lookup error")</span><br><span style="color: hsl(120, 100%, 40%);">+            logger.error("lookup error")</span><br><span>             merge_value(key, val, section, pjsip, nmapped, type, section_to, key_to)</span><br><span>             return</span><br><span>     elif key == 'disallow':</span><br><span>@@ -840,11 +844,11 @@</span><br><span>         method = sip.multi_get('general', ['tlsclientmethod',</span><br><span>                                            'sslclientmethod'])[0]</span><br><span>         if section != 'transport-' + protocol + '6':  # print only once</span><br><span style="color: hsl(0, 100%, 40%);">-            print('In chan_sip, you specified the TLS version. With chan_sip,' \</span><br><span style="color: hsl(0, 100%, 40%);">-                  ' this was just for outbound client connections. In' \</span><br><span style="color: hsl(0, 100%, 40%);">-                  ' chan_pjsip, this value is for client and server. Instead,' \</span><br><span style="color: hsl(0, 100%, 40%);">-                  ' consider not to specify \'tlsclientmethod\' for chan_sip' \</span><br><span style="color: hsl(0, 100%, 40%);">-                  ' and \'method = sslv23\' for chan_pjsip.')</span><br><span style="color: hsl(120, 100%, 40%);">+            logger.error('In chan_sip, you specified the TLS version. With chan_sip,' \</span><br><span style="color: hsl(120, 100%, 40%);">+                         ' this was just for outbound client connections. In' \</span><br><span style="color: hsl(120, 100%, 40%);">+                         ' chan_pjsip, this value is for client and server. Instead,' \</span><br><span style="color: hsl(120, 100%, 40%);">+                         ' consider not to specify \'tlsclientmethod\' for chan_sip' \</span><br><span style="color: hsl(120, 100%, 40%);">+                         ' and \'method = sslv23\' for chan_pjsip.')</span><br><span>     except LookupError:</span><br><span>         """</span><br><span>         OpenSSL emerged during the 90s. SSLv2 and SSLv3 were the only</span><br><span>@@ -1247,7 +1251,7 @@</span><br><span>             pjsip.write(fp)</span><br><span> </span><br><span>     except IOError:</span><br><span style="color: hsl(0, 100%, 40%);">-        print("Could not open file " + filename + " for writing")</span><br><span style="color: hsl(120, 100%, 40%);">+        logger.error("Could not open file %s for writing", filename)</span><br><span> </span><br><span> ###############################################################################</span><br><span> </span><br><span>@@ -1265,9 +1269,21 @@</span><br><span>     parser = optparse.OptionParser(usage=usage)</span><br><span>     parser.add_option('-p', '--prefix', dest='prefix', default=PREFIX,</span><br><span>                       help='output prefix for include files')</span><br><span style="color: hsl(120, 100%, 40%);">+    parser.add_option('-q', '--quiet', dest='quiet', default=False, action='store_true',</span><br><span style="color: hsl(120, 100%, 40%);">+                      help="don't print messages to stdout")</span><br><span> </span><br><span>     options, args = parser.parse_args()</span><br><span>     PREFIX = options.prefix</span><br><span style="color: hsl(120, 100%, 40%);">+    stdout_handler = logging.StreamHandler(sys.stdout)</span><br><span style="color: hsl(120, 100%, 40%);">+    stdout_handler.setFormatter(logging.Formatter('%(message)s'))</span><br><span style="color: hsl(120, 100%, 40%);">+    if options.quiet:</span><br><span style="color: hsl(120, 100%, 40%);">+        log_level = logging.ERROR</span><br><span style="color: hsl(120, 100%, 40%);">+    else:</span><br><span style="color: hsl(120, 100%, 40%);">+        log_level = logging.INFO</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    stdout_handler.setLevel(log_level)</span><br><span style="color: hsl(120, 100%, 40%);">+    logger.addHandler(stdout_handler)</span><br><span style="color: hsl(120, 100%, 40%);">+    logger.setLevel(log_level)</span><br><span> </span><br><span>     sip_filename = args[0] if len(args) else 'sip.conf'</span><br><span>     pjsip_filename = args[1] if len(args) == 2 else 'pjsip.conf'</span><br><span>@@ -1278,11 +1294,11 @@</span><br><span>     sip_filename, pjsip_filename = cli_options()</span><br><span>     # configuration parser for sip.conf</span><br><span>     sip = astconfigparser.MultiOrderedConfigParser()</span><br><span style="color: hsl(0, 100%, 40%);">-    print('Please, report any issue at:')</span><br><span style="color: hsl(0, 100%, 40%);">-    print('    https://issues.asterisk.org/')</span><br><span style="color: hsl(0, 100%, 40%);">-    print('Reading ' + sip_filename)</span><br><span style="color: hsl(120, 100%, 40%);">+    logger.info('Please, report any issue at:')</span><br><span style="color: hsl(120, 100%, 40%);">+    logger.info('    https://issues.asterisk.org/')</span><br><span style="color: hsl(120, 100%, 40%);">+    logger.info('Reading %s', sip_filename)</span><br><span>     sip.read(sip_filename)</span><br><span style="color: hsl(0, 100%, 40%);">-    print('Converting to PJSIP...')</span><br><span style="color: hsl(120, 100%, 40%);">+    logger.info('Converting to PJSIP...')</span><br><span>     pjsip, non_mappings = convert(sip, pjsip_filename, dict(), False)</span><br><span style="color: hsl(0, 100%, 40%);">-    print('Writing ' + pjsip_filename)</span><br><span style="color: hsl(120, 100%, 40%);">+    logger.info('Writing %s', pjsip_filename)</span><br><span>     write_pjsip(pjsip_filename, pjsip, non_mappings)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/10546">change 10546</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/10546"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 16 </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I7b0e2e90e2549f3f8e01dc96701f111b5874c88d </div>
<div style="display:none"> Gerrit-Change-Number: 10546 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pascal Cadotte Michaud <pcm@wazo.io> </div>