<p>Torrey Searle has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/6810">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">contrib/script/sip_to_pjsip: implement 'all' for allow/disallow<br><br>when 'all' is specified in an allow or disallow section, it should erase<br>all values from the inverse section in the default config. E.G.<br>allow=all should erase any deny values from default config &<br>vice-versa<br><br>ASTERISK-27333 #close<br><br>Change-Id: I99219478fb98f08751d769daaee0b7795118a5a6<br>---<br>M contrib/scripts/sip_to_pjsip/sip_to_pjsip.py<br>1 file changed, 42 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/10/6810/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py<br>index eb3aab3..533e4ba 100755<br>--- a/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py<br>+++ b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py<br>@@ -77,6 +77,46 @@<br>                   section_to if section_to else section,<br>                   pjsip, nmapped, type)<br> <br>+def merge_codec_value(key=None, val=None, section=None, pjsip=None,<br>+                nmapped=None, type='endpoint', section_to=None,<br>+                key_to=None):<br>+    """Merge values from allow/deny with those from the default. Special treatment for all"""<br>+    def _merge_codec_value(k, v, s, r, n):<br>+        merge_codec_value(key if key else k, v, s, r, n, type, section_to, key_to)<br>+<br>+    # if no value or section return the merge_codec_value<br>+    # function with the enclosed key and type<br>+    if not val and not section:<br>+        return _merge_codec_value<br>+<br>+    if key == 'allow':<br>+        try:<br>+             disallow = sip.get(section, 'disallow')[0]<br>+           if disallow == 'all':<br>+                    #don't inherit<br>+                    for i in sip.get(section, 'allow'):<br>+                     set_value(key, i, section, pjsip, nmapped, type)<br>+             else:<br>+                    merge_value(key, val, section, pjsip, nmapped, type, section_to, key_to)<br>+     except LookupError:<br>+              print "lookup error"<br>+               merge_value(key, val, section, pjsip, nmapped, type, section_to, key_to)<br>+             return<br>+    elif key == 'disallow':<br>+     try:<br>+             allow = sip.get(section, 'allow')[0]<br>+         if allow == 'all':<br>+               #don't inherit<br>+                    for i in sip.get(section, 'disallow'):<br>+                  set_value(key, i, section, pjsip, nmapped, type)<br>+             else:<br>+                    merge_value(key, val, section, pjsip, nmapped, type, section_to, key_to)<br>+     except LookupError:<br>+              merge_value(key, val, section, pjsip, nmapped, type, section_to, key_to)<br>+             return<br>+    else:<br>+   merge_value(key, val, section, pjsip, nmapped, type, section_to, key_to)<br>+<br> <br> def non_mapped(nmapped):<br>     """Write non-mapped sip.conf values to the non-mapped object"""<br>@@ -404,8 +444,8 @@<br>     ###########################################################################<br>     ['context',            set_value],<br>     ['dtmfmode',           set_dtmfmode],<br>-    ['disallow',           merge_value],<br>-    ['allow',              merge_value],<br>+    ['disallow',           merge_codec_value],<br>+    ['allow',              merge_codec_value],<br>     ['nat',                from_nat],            # rtp_symmetric, force_rport,<br>                                                  # rewrite_contact<br>     ['rtptimeout',         set_value('rtp_timeout')],<br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/6810">change 6810</a>. To unsubscribe, 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/6810"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 15 </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I99219478fb98f08751d769daaee0b7795118a5a6 </div>
<div style="display:none"> Gerrit-Change-Number: 6810 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Torrey Searle <tsearle@gmail.com> </div>