<p>Hello,</p>
<p>I have enhanced the way REDIS replied are accessed in the Kamailio config, to be able to access arrays that are members of other arrays. In the original code, we could access members of an array like this: $redis(reply=>value[0]).<br>
But if that member was itself an array it was impossible to access it, as accessing an array directly returns (null). This case can happen if we use redis transactions with, and all commands are given between MULTI and EXEC commands. Then the EXEC command returns an array with the responses of the individual commands, so if any command returns an array, then we have an array within that array.</p>
<p>I have modified the syntax of the redis replies in the config, to be able to add other keys after value[n] keys. This way we can access members of the array within the first array.<br>
For example after the following sequence:</p>
<pre><code>redis_cmd("srvN", "MULTI", "r1");
redis_cmd("srvN", "SMEMBERS foo", "r2");
redis_cmd("srvN", "EXEC", "reply")

</code></pre>
<p>The PV to access the response will look like this</p>
<ul>
<li>
<p>to access the first elemenent of SMEMBERS:</p>
<p><code>$redis(reply=>value[0]=>value[0])</code></p>
</li>
<li>
<p>to access the second element of SMEMBERS:</p>
<p><code>$redis(reply=>value[0]=>value[1])</code></p>
</li>
<li>
<p>to see how many elements SMEMBERS returned:</p>
<p><code>$redis(reply=>value[0]=>size)</code></p>
</li>
<li>
<p>to see the type the first element returned by SMEMBERS:</p>
<p><code>$redis(reply=>value[0]=>type[0])</code></p>
</li>
</ul>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/kamailio/kamailio/pull/1147'>https://github.com/kamailio/kamailio/pull/1147</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>ndb_redis: enhance access to REDIS replies</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/1147/files#diff-0">src/modules/ndb_redis/doc/ndb_redis_admin.xml</a>
    (16)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/1147/files#diff-1">src/modules/ndb_redis/ndb_redis_mod.c</a>
    (181)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/1147/files#diff-2">src/modules/ndb_redis/redis_client.h</a>
    (4)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/kamailio/kamailio/pull/1147.patch'>https://github.com/kamailio/kamailio/pull/1147.patch</a></li>
  <li><a href='https://github.com/kamailio/kamailio/pull/1147.diff'>https://github.com/kamailio/kamailio/pull/1147.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/pull/1147">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AF36ZYtwu6pI6dXsuVRFRMsfvHop-My5ks5sAASygaJpZM4NuPH4">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AF36ZZLcO4fJfK_9AGMnPxDu4uKXdAIDks5sAASygaJpZM4NuPH4.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/kamailio/kamailio/pull/1147"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/kamailio/kamailio","title":"kamailio/kamailio","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/kamailio/kamailio"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"ndb_redis: enhance access to REDIS replies (#1147)"}],"action":{"name":"View Pull Request","url":"https://github.com/kamailio/kamailio/pull/1147"}}}</script>