<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sip on bramp.net</title>
    <link>https://blog.bramp.net/</link>
    <description>Recent content in Sip on bramp.net</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-GB</language>
    <lastBuildDate>Fri, 23 Sep 2011 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.bramp.net/tags/sip/" rel="self" type="application/rss+xml" />
    
    <item>
      <title>MD5 Digest Authorisation in SIP with PHP</title>
      <link>https://blog.bramp.net/post/2011/09/23/md5-digest-authorisation-in-sip-with-php/</link>
      <pubDate>Fri, 23 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://blog.bramp.net/post/2011/09/23/md5-digest-authorisation-in-sip-with-php/</guid>
      <description><p>Today I needed to work out the MD5 Digest hash for SIP authorisation. A quick search on Google revealed <a href="http://alexkr.com/memos/66/digest-authorization-in-sip-with-md5/">instructions</a> on how to generate the hash, and then I made this simple PHP script.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl"><span class="o">&lt;?</span><span class="nx">php</span>
</span></span><span class="line"><span class="cl"><span class="nv">$username</span> <span class="o">=</span> <span class="s1">&#39;1234&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$realm</span>    <span class="o">=</span> <span class="s1">&#39;asterisk&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$password</span> <span class="o">=</span> <span class="s1">&#39;PASSWORD&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$uri</span>      <span class="o">=</span> <span class="s1">&#39;sip:1.2.3.4&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$nonce</span>    <span class="o">=</span> <span class="s1">&#39;abcdef01&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">$str1</span> <span class="o">=</span> <span class="nx">md5</span><span class="p">(</span><span class="s2">&#34;</span><span class="si">$username</span><span class="s2">:</span><span class="si">$realm</span><span class="s2">:</span><span class="si">$password</span><span class="s2">&#34;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="nv">$str2</span> <span class="o">=</span> <span class="nx">md5</span><span class="p">(</span><span class="s2">&#34;REGISTER:</span><span class="si">$uri</span><span class="s2">&#34;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">echo</span> <span class="nx">md5</span><span class="p">(</span><span class="s2">&#34;</span><span class="si">$str1</span><span class="s2">:</span><span class="si">$nonce</span><span class="s2">:</span><span class="si">$str2</span><span class="s2">&#34;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="cp">?&gt;</span><span class="err">;
</span></span></span></code></pre></div><p>All of those variables can be pulled out of a packet capture of a <a href="http://tools.ietf.org/html/rfc3261#section-10.2">SIP REGISTER</a>, and the results can be useful for validating the password a device is sending, is what it is actually sending.</p>
</description>
    </item>
    
  </channel>
</rss>
