title: How to build a softphone (using SIP protocol) using C#
body: <p>I have this challenge to build an sip softphone using c# or .net technologies.</p>
  <p>Please guide me the technology, requirements and specifications that is needed to build such.</p>
  <p><strong>Possible requirements:</strong></p>
  <p><em><strong>Supported codecs:</strong></em></p>
  <p>G.722.1, G.723.1, G.726, G.728, G.711, G.729, G.723.1, iLBC,: G.711 (A and m-law),G.729A/B/D/E, AMR, GSM 6.10/EFR, iLBC, Speex</p>
  <ul>
  <li><p><em><strong>Voice:</strong></em></p>
  <p>Real time Quality Monitoring (MOS) 3
  independent phone lines<br />
  Auto-Answer/Do Not Disturb Call<br />
  Forwarding Full Duplex Audio<br />
  Recording compress the audio data.</p>
  </li>
  <li><p>Fully SIP compatible softphone/dialer
  for PC2Phone and  Mobile2Phone
  (iPhone, Nokia N95) application with
  symbian s60 , full source code should
  provide.</p>
  </li>
  <li><p>Compatible with Windows 2000/XP/2003/Vista/Mac</p>
  </li>
  <li><p>NAT/Firewall traversal feature</p>
  </li>
  <li><p>Works with any 3rd party SIP Server</p>
  </li>
  <li><p>Supports SIP outbound proxy</p>
  </li>
  <li><p>Displays callers account balance</p>
  </li>
  <li><p>Displays call credit time</p>
  </li>
  <li><p>Automatic Echo Cancellation</p>
  </li>
  <li><p>Automatic jitter buffer adjustment</p>
  </li>
  <li><p>Last number Redial</p>
  </li>
  <li><p>History of 10 last dialed numbers</p>
  </li>
  <li><p>Quick dial user list</p>
  </li>
  <li><p>Quick provision for customers, only
  user name and password required</p>
  </li>
  </ul>