Initializing NIST JAIN SIP Stack

This tutorial uses NIST SIP JAIN Reference Implementation. Download the NIST source code from here. … [Read more...]

Digest authorization in SIP with MD5 Challenge

During a SIP request if the server responds with 401 Proxy Authentication Required or 401 Unauthorized then it means the client has to replay the same request again with MD5 challenge. The client should use nonce value from the response header WWW-Authenticate. The client should use nonce to generate the MD5 challenge and make the original request again with the Authorization header. Steps to create the MD5 Challenge 1. Create first MD5 hash using username + ":" + realm + ":" + … [Read more...]

SIP Register Request using JAIN SIP


This tutorial uses NIST SIP JAIN Reference Implementation. Download the NIST source code from here. Note: To understand the Authorization process for handling 401 response code from server please go through this tutorial. REGISTER request is used to update the current location of a user on the REGISTRAR server. The application sends a REGISTER message informing the server its current location which in turn is stored in location server. When a caller calls a user the proxy server uses this … [Read more...]

Introduction to SIP

SIP stands for Session Initiation Protocol a signaling protocol defined by IETF used for controlling communication sessions. SIP is used to create, manage and terminate sessions in an IP based network. SIP is widely used in VOIP (Voice over IP) .   The two main entities in a SIP session are User Agent Client User Agent Server There are several types of server   Proxy Server Redirect Server Registrar Location Server   SIP is similar to HTTP protocol. To understand the differences … [Read more...]

Capturing Android SIP Logs using TCPDump


Please make sure your device is rooted before following these steps. 1. Start adb in root mode by entering the following command             adb root 2. Download the tcpdump binary from either or here 3. Push tcpdump to the device.             adb push tcpdump-arm /data/local/ 4. Make sure correct permission is set for tcpdump.             adb shell chmod 777 /data/local/tcpdump-arm 5. Start capturing the network packets. Replace any with your interface name. … [Read more...]