I am a software professional and researcher with current interest in web-based and cloud communication systems. In the past I have worked on a variety of Internet communication systems such as voice and video on web, SIP/VoIP with Flash Player, web-based video conferencing, cloud telephony, enterprise video communication and peer-to-peer internet telephony. I completed my PhD from Columbia University under the guidance of Prof. Henning Schulzrinne. You can explore my professional background and activities on this website.
Strata, AMSconf, always-on, IPO phone, ALICE, MobileSpaces, Vclick, aRtisy, AVRplugin, SecureEdge, Personal Wall, LivingContent, HTML5 communicator, Enterprise WebRTC, Resource Server, 39 Peers, P2P-SIP, SIP-RTMP gateway, RTMP server, Flash-VideoIO, Face Talk, Random Face, iChatNow, Public Chat (auto), Video Office, Talk to Experts, VVoW project, SIP-JS, Flash network, Videocity, AIRphone, REST server, E911 call taker, PSAPd.py, LoST client, SIP on iOS/Android, RTMP-SIP translator, Voice quality, Video pipe, 6connex client, Flash video call, Web to phone, Flash SIP/DHT, SIP/XMPP communicator, Flash click-to-call, Flash Voice, Serverless mobile gaming, Attack detector UI, MobileNAT, SIP-H.323 gateway, SIP/RTSP unified messaging, Multimedia collaboration, SIP-VoiceXML interactive response server, SIP/RTP conference, Hello2web applet P2P-over-SIP, SIP-using-P2P, SIP scalability/robustness, CINEMA, Auto attendent, Addressbook, Device control, XCAP server, Email-by-phone, DNS NAPTR, SIP ActiveBadge, Events, TRIP in sipd, IM/Voice, SIP announce, SIP ALG, Email-to-phone, RTP QoS, SIP E911, Message board, Calendar events, Conference recording, File sharing, Auto-load conference, Voice playout, Email-by-phone, RTSP client, VoiceXML browser, MP3 in rtspd, MPEG in rtspd, SIP Teltone, H.320 on embedded systems, H.323-H.324 gateway, H.323 video phone
Note: As you hover mouse over various links, this box is updated with the description of that topic, and other related topics and links are highlighted on this page. Clicking on a link will either open the linked external web page, or will make this box static for a few seconds, so that you can click on the links present in this box.
In the past I have done research and development in the field of Internet telephony and web communications in academia as well as industry including established organization as well as startups. On this website you can find more about my past professional experience, background, and activities. If you would like to reach me, please follow instructions shown in the contact me box near the top-right corner.
I have worked on several open source software systems related to voice and video on the web, peer-to-peer internet telephony, and implementations of various communication protocols such as SIP, XMPP, RTMP. I also mentor students in doing software research projects related to Internet multimedia communication. Please visit my student project page for details on how to join or contribute.
My articles on various technologies such as WebRTC, peer-to-peer, IP telephony, software development, programming language, open source, and anything else I feel writing about in computer science. Some popular articles are linked below.
WebRTC vs. SIP/SDP, Translating H.264 between Flash Player and SIP/RTP, A proposal for reference implementation respoitory, What great programmers think?, Why does client-server video conference fail? SIP vs XMPP or SIP and XMPP, SIP-using-P2P vs P2P-over-SIP
A content portal for my past and current student projects that I have mentored, as well as a social network forum to connect students, project mentors and professors. It also lists a bunch of project ideas for student projects in the field of multimedia communication, web applications and Internet. If you are a student and wish to host your project on this site, please send me a note.
My collection of technical interview questions for job seekers to prepare for. These questions were collections from elsewhere on the web during 1999-2000 when I was looking for a job. I do not have answers to all these questions, but will appreciate if you send me any answers or corrections.
They said it: Love is about giving ... giving happiness and care ... giving love, there is no question of asking love in return. Love is not a business. Its not whether you win or lose, but how you play the game, that counts! Work like you don't need the money. Dance like no one is watching, and love like you have never been hurt. When we walk to the edge of all the light we have and take the step into the darkness of the unknown, we must believe that one of two things will happen. There will be something solid for us to stand on or we will be taught to fly.
I like reading story books, poems, watching movies, listening to music, sketching, painting, playing cricket, pool and wasting time on computer.
An aqueous cascade bathe my ankles. I watched the relentless rhythms, the rise and fall of the sea, whispering from its depth untold secrets of a bygone era. I think of the past. Content in its flow. Happy in its history, safe in the arms of loved ones... long gone. The pristine clarity clouded. Things change. Memories remain forever!
My collection of programming tricks in Python, ActionScript, C/C++ and Java. The articles are written in Q/A style, so you can also take a test of how much you know :)
Kundan Singh, Implementing SIP telephony in Python, Online Book, © Kundan Singh, 2007-2008. [PDF][HTML]
This is an implementer̥s Guide to Scalable and Robust Internet Telephony with Session Initiation Protocol and related protocols in Client-Server and Peer-to-Peer modes in Python. This also serves as an implementation report of the 39 peers project.
Strata Top9 is a mobile and desktop app to easily reach your top 9 contacts.
It is an experimental enterprise cloud app created at Avaya Labs to quickly connect with any of your top 9 contacts. It uses modern HTML5 technologies including WebSocket and WebRTC to enable real time and multimedia interaction where possible. It uses our cloud resource service.
It uses resource server create endpoint driven conference control and membership management in a centralized multi-party conference hosted at Avaya Media Server (AMS).
This is my open source project that implements many communication protocols Python. The project implements several specifications and IETF RFCs such as SIP, RTP, SDP, XMPP, RTMP, NAT traversal, DHT, peers and servers. The project is developed for student developers and researchers to experiment with new ideas.
This is my open source project that implements peer-to-peer Internet telephony software using the Session Initiation Protocol (P2P-SIP) in the Python programming language. P2P systems inherently have high scalability, fault tolerance and robustness against catastrophic failures. Internet telephony can be an application of P2P architecture where participants locate and communicate with each other without relying on expensive and managed service provider infrastructure.
The goal of this project is to allow Flash to SIP calls and vice versa. In particular it allows multimedia calls from Flash Player to SIP network and SIP network to Flash Player. The gateway implements translation of signaling as well as media between Flash Player's RTMP and standard SIP, SDP, RTP/RTCP. The client side API allows you or any third-party to build user interface of web based audio and video phone that uses SIP in the back end. The user applications can be built using ActionScript for web browser as well as standalone AIR.
Flash-VideoIO is a reusable generic Flash application to record and play live audio and video content. It can be used for variety of use cases in audio and video communication, e.g., live camera view, recording of multimedia messages, playing video files from web server or via streaming, live video call and conferencing using client-server as well as peer-to-peer technology.
These are face-to-face two-party video chat applications on Facebook. They allow you to video chat with your online friends. They use Adobe Stratus for peer-to-peer media streams, and Facebook's text chat and live messaging for signaling. A friend of mine and I created these projects as demonstrations of Flash VideoIO on Facebook. More details are provided on the Flash-VideoIO project page.
This is a chatroulette-type application built using the Flash VideoIO component on Adobe Stratus service and Python-based Google App Engine. This site is just a demonstration of how such services can be built using the generic Flash-VideoIO component. It uses the Channel API of the App Engine for asynchronous XMPP-style messaging and events. More details are provided on the Flash-VideoIO project page.
This is a multi-party audio, video and text chat application built on top of Python-based Google App Engine and using Channel API for asynchronous instant messaging and presence. This site is a demonstration of how such services can be built using the generic Flash-VideoIO component. It allows public and hidden chat rooms, user listing, and persistent messages. You can publish your video stream or play the streams of others who are publishing, by a click on checkbox items. More details are provided on the Flash-VideoIO project page.
This is a web-based video office that allows others visit my office to talk to me. It uses Adobe Stratus for peer-to-peer media streams, Google App Engine for back-end service, its Channel API for asynchronous events, and its XMPP module for interacting with Google chat. When someone visits my video office, I get a Google chat notification, so that I can open my office for live video chat. The application allows you to create your own video office using your Google Mail account. More details are provided on the Flash-VideoIO project page.
This is an extension of Video Office project, that allows you to also search for experts based on a topic, see their calendar, sign up to talk to them in their calendar, and video chat with them in real-time. It uses Adobe Stratus for peer-to-peer media streams, Google App Engine for back-end service, its Channel API for asynchronous events, and its XMPP module for interacting with Google chat. The can get notified on Google chat when a visitor wants to chat with him. The application allows you to sign up as an expert on some topic, and potentially monetize your time giving expert advice. More details are provided on the Flash-VideoIO project page.
This web-based multiparty video conferencing and presentation application allows you to do real-time video conferencing, text chat and slide share. It uses RESTful API to access the resource-oriented data model for communication using a generic backend MySQL/PHP server over websocket (actually Socket.io). More details are on the project page as well as open source. A running demonstration can be tried out at IIT web conference page.
This is my open source Flash and web-based video telephony and conference application. The video communication is abstracted out as a city. Once you signup, you own a home, where you can have several rooms. You can decorate your rooms with your favorite photos and videos, invite your friends and family to visit a room by handing out Internet visiting card or softcard (TM), or visit other people's rooms to video chat with them or to leave a video message if they are not in their home. You can keep a room open for public or make it private.
Restlite is a light-weight Python implementation of server tools for quick prototyping of your RESTful web service. Instead of building a complex framework, it aims at providing functions and classes that allows your to build your own application.
restlite = REST + Python + JSON + XML + SQLite + authentication
As a Bell Labs intern, I did research, design and implementation of MobileNAT that provides IP mobility for devices in private address spaces. I wrote the client application that implements DHCP client and server, and the driver that traps and alters the IP packets on Windows XP. I also wrote the server application that runs on the Linux router, implements DHCP server and alters the NAT mapping. The project was one part of the bigger project on integration of 802.11 and 3G technologies.
Kundan Singh received his PhD from Columbia University with focus on Internet telephony and has worked at Motorola, Bell Labs, Adobe, Tokbox, 6Connex, Twilio, Emergent and Avaya on a variety of Internet communication systems using SIP, web and cloud platform. Dr. Singh is an active open source contributor with several projects in peer-to-peer Internet telephony, Flash based audio and video communication, and voice and video using web based real-time communications.
Kundan Singh is a VoIP researcher and software professional. He received his undergraduate degree in computer science from Birla Institute of Technology and Science, India, and his MS and Ph.D. degrees in computer science from Columbia University, New York. He has worked at Motorola, Lucent Bell Labs, Adobe Systems, Tokbox Inc., 6Connex Inc., Twilio Inc., Emergent Communications, and Avaya Labs.
His research interest includes Internet telephony, web multimedia communication, peer-to-peer systems, and scalable and reliable Internet services. He has published over twenty refereed papers in Internet telephony and web communications, holds three patents, and written many software applications such as SIP-H.323 signaling gateway, unified messaging system using SIP and RTSP, multi-platform SIP-based conferencing server, VoiceXML based IVR platform, P2P-SIP system, SIP stack and distributed hash table for Flash Player applications, web-based video conferencing system, scalable SIP-RTMP translation for web-to-phone calls and distributed conferencing, next generation E911 system using web technologies, pure HTML5 video communicator and instant messenger, and several WebRTC based proof-of-concept applications and systems.
In a research setting, I am comparing the various approaches to integrate the emerging web-based real-time communication (WebRTC) with legacy VoIP systems. I am exploring various enterprise use cases of the emerging HTML5 standards. I create ideas and prototypes to propose future directions.
Emergent communications provides software pieces for the next generation emergency services by productizing the innovations from Columbia University where the core pieces such as SIP and location-to-service-translation (LoST) were invented. Some of these software pieces were written by me during my time at the university. I was responsible for the entire software engineering and development at Emergent. The job involves productizing the software using advanced cloud-based services and modern web based applications for the call taker terminals. The main challenge is in creating integrated software solution out of the multitude of technologies used and developed at the university.
Twilio is a cloud telephony application provider that allows web developers to take the full advantage of the telephony API using simple, elegant and robust cloud service. As a part time consultant at Twilio, I am responsible for architecture, design and implementation of mobile client on Android and iPhone and implementation of gateway server for web client. I also did performance and voice quality measurement under server load, and built prototype of a video pipe from the browser client. I served as an in-house technology expert for Flash-based communication (RTMP) and SIP/RTP standards.
It provides a virtual experience platform where organizations can host virtual events and participants attend sessions, interact in virtual rooms, and build their social network. I lead the architecture and implementation of audio and video communication, conferencing, messaging and social interaction among the participants for the platform.
It allows web-based video telephony for Internet users using easy to use Flash technology. As a senior software engineer, my role at Tokbox was to enhance the system by using standard protocols such as SIP and XMPP for signaling of video communication, to interact with telephone network to allow PC to Phone and Phone to PC communication, and to build scalable and reliable backend infrastructure for the Internet scale. I have also helped in building more robust front end using the new Adobe Flex technology.
As a senior computer scientist at Adobe, I designed and implemented Flash-based Internet telephony and peer-to-peer systems. I implemented a SIP stack and a P2P library in ActionScript and built several prototype Flash-based applications such as integrated SIP and XMPP communicator, click-to-call Flash component, browser extensions for Firefox and IE for PC to phone calling, and a P2P-SIP user agent. My P2P implementation was based on Bamboo DHT and incorporated authenticated data storage, secure transport and reliability as discussed in my thesis.
As a member of technical staff, I did design of a scalable and robust server-less infrastructure for mobile carriers to support gaming and other services in a distributed peer-to-peer manner. I also did design and implementation of Java-based user interface of an attack detection software for mobile carriers.
I worked on a number of pieces of software at Columbia Internet Real-Time Lab. Some of these software pieces were sold by a former startup company named SIPquest which was acquired by CounterPath. I am no longer associated with these software pieces, so please do not send me licensing questions. Feel free to browse through the documents and APIs of these software pieces. I am also looking for students interested in building open-source versions of these software at my projects site. Drop me a mail if you would like to work on this.
Quick Links: CINEMA, sip323: translator, sipum: voicemail, rtspd: media server, sipua: useragent, sipconf: conference, sipvxml: voicexml
API docs: libsipapi (SIP lib),libconf (mixer),sipconf (conference),sipum (voicemail),sipvxml (VoiceXML),libnat (NAT/firewall),sippeer (P2P-over-SIP)
I have also worked on several other libraries in CINEMA such as conferencing (libconf), NAT/firewall traversal (libnat). The complete test-bed architecture is descibed in a technical report, found on my publications page. There are various other individual component publications, describing individual components in detail. Some of the slides for demonstration of these software can be found at my talks page. In the past I also built a Web based user agent hello2web as a prototype application. An old web page with documents can be found at helloweb.
In a group of two engineers, we did design and implementation of a complete H.323 video conferencing client for Windows using external components for initial signaling and media codecs. I also helped in various other ongoing projects such as VoIP gateway, embedded systems for H.320 video conferencing, and mentored an intern for H.323-H.324 gateway. I also did internship from Jan 1997 to June 1997 for six months as part of my B.E. curriculum.
My research focus was on scalable and robust Internet telephony and multimedia internetworking: IP telephony, SIP-PSTN interworking, SIP-H.323 signaling gateway, SIP-RTSP based unified messaging system, comprehensive multimedia collaboration, VoiceXML-based interactive voice response system, SIP/RTP based scalable and robust, conference, and SIP protocol stack. Focus of my thesis is on scalability and reliability of IP telephony systems in peer-to-peer as well as server-based architectures using existing standards. My software pieces were part of CINEMA (Columbia INternet Extensible Multimedia Architecture) test bed in Prof. Schulzrinne's lab. My software pieces were productized and sold by startup companies, SIPquest and FirstHandTech, spun out of Columbia University. During the initial years, I wrote an object-oriented SIP user agent library in C++, using our underlying SIP transaction and parsing library. I developed other components such as unified messaging, voice mail and answering machine server, multimedia conference server, interactive voice response server and SIP-H.323 signaling gateway. I wrote reusable object oriented modules for conference library and media-streaming library. Later, I built scalability and reliability mechanism for SIP servers that provide PSTN-grade availability (five nines) and scalability (ten million BHCA), albeit at much lower cost. I also developed techniques and built systems for robust and scalable peer-to-peer Internet telephony without incurring any server maintenance cost.
Teaching Assistant: Advanced Internet Services (COMS E6181-1), Columbia University, Fall 2001, with 48 students enrolled in the class, and primary responsibility of evaluating assignments and programming projects, and interacting with the students regarding the course material. I received excellent TA award. I continued as the TA and coordinator of this course for the subsequent offering of this course over Columbia Video Network (a distance learning program) for Summer 2002, Fall 2002, Spring 2003 and Summer 2003, with main responsibility being designing and grading evaluation assignments, programming projects and final exams for the enrolled students.
Project Mentoring: In the more than five years as a PhD student in the Internet Real Time Lab., I supervised many student projects such as active badges, event notification and scheduling system, screen sharing, floor control, file sharing, interworking between instant messaging and voice calls, phone announcement service, application level gateway for NAT and firewall traversal, email by phone, audio quality measurement for conferencing, location service for 911 calls in SIP proxy server, and integrating MPEG support in our media server. I also launched a software research project web site for students at http://myprojectguide.org to help project students and build community. My past and current student project can be found on that site.
Three US patents granted #7,453,852, #7,257,201, #7,266,091
Extraordinary Teaching Assistant Award, Fall 2001, Columbia University, New York, NY
Research assistant for M.S. and Ph.D., Columbia University, New York, NY
Grade of A or A+ in all subjects throughout my Bachelors, Masters and PhD study
University Gold Medalist, 1997, Birla Institute of Technology and Science, Pilani, India
Second rank among lakhs of students in board exam of both class 10 and 12, India
Scored 100% marks in math in class 12, and science in class 10 board exam, India
Ph.D. student representative, 2001, Computer Science Department, Columbia University
Coordinator, Department of Hindi Press, APOGEE 1996, BITS, Pilani, India
I have extensive programming experience in C, C++, Python, ActionScript (Flex), Java, Tcl and Perl. I have worked on both Unix and Windows platforms, as well as on real time OS. I am familiar with various tools such as MySQL, Apache, TomCat, gcc/make, VC++, CGI, servlet, Flex Builder, Eclipse, LAMP/WAMP, git, cvs and svn. I have worked with various hardware and software tools such as Cisco router 2600 series, Cisco IP phone, Nortel MCS 5100 system, Intel/Dialogic IP telephony, MySQL replication, Vovidḁs SIP and TRIP stacks, DNS SRV and NAPTR, DHCP server and client, FMS and Red5 media servers, SER/OpenSER servers, Google App Engine, Facebook application, RESTful architecture. I have working knowledge of software process including CMM quality levels and software design models. I have also worked briefly with Linux kernel module programming, Windows driver programming and MacOS audio module programming.
I have extensive experience with various Internet protocols such as Session Initiation Protocol (SIP), Real-time Transport Protocol (RTP), Real Time Streaming Protocol (RTSP), Session Description Protocol (SDP), Extensible Messaging and Presence Protocol (XMPP), Real-time messaging protocol (RTMP), VoiceXML, Simple Object Access Protocol (SOAP), ITU-T recommendations H.323, H.225.0, cryptography, security protocols, wireless/mobility protocols such as Mobile IP and some intra-domain mobility protocols for fast handoff, IP-PSTN interworking for telephony and related protocols. I have worked extensively on server scalability and reliability, and peer-to-peer systems and algorithms.
Twilio: architecture, design and implementation of mobile client and implementation of gateway for web client for cloud telephony. Also did voice quality and performance measurement on server load, and prototype of video pipe for web browser.
6Connex: Lead the architecture and development of socialnetworking and communication component for enterprise virtual events.
TokBox: I designed and implemented the flex based TokBox client for video conferencing. I also did several prototype implementations for PC to phone calling, shared media viewing, distributed server infrastructure for low latency and automatic fail over of video calls.
Adobe: I implemented a SIP stack and a P2P library in ActionScript and built several prototype Flash-based applications such as integrated SIP+XMPP communicator, click-to-call Flash component, browser extensions for Firefox and IE for PC to phone calling, and a P2P-SIP user agent. My P2P implementation is based on Bamboo DHT and incorporates authenticated data storage, secure transport and reliability.
Columbia: During the initial years, I wrote an object-oriented SIP user agent library in C++, using our underlying SIP transaction and parsing library. I developed other components such as unified messaging voice mail and answering machine server, multimedia conference server, interactive voice response server and SIP-H.323 signaling gateway. I wrote reusable object oriented modules for the conference library and media-streaming library. Later, I built scalability and reliability mechanism for SIP servers that provide PSTN-grade availability (five nines) and scalability (ten million BHCA), albeit at much lower cost. I also developed techniques and built systems for robust and scalable peer-to-peer Internet telephony without incurring any server maintenance cost.
Bell Labs: I worked on MobileNAT that provides IP mobility for devices in private address spaces. I wrote the client application that implements DHCP client and server, and the driver that traps and alters IP packets on Windows XP. I also wrote the server application that runs on the Linux router, implements DHCP server and alters the NAT mapping.
Motorola: In a team of two, I developed a complete H.323 video conferencing client for Windows using external components for Q.931 and media codecs. I also helped in various other ongoing projects such as H.323-H.324 gateway, H.320-based video conferencing and debugging tools for embedded systems.
United States Patent 7,453,852, Method and system for mobility across heterogeneous address spaces, Buddhikot; Milind M. (Cliffwood, NJ), Hari; Adiseshu (Matawan, NJ), Miller; Scott C. (Freehold, NJ), Singh; Kundan Narendra (New York, NY), Lucent Technologies Inc. (Murray Hill, NJ) , Filed: July 14, 2003, Awarded: November 18, 2008. Also has international applications.
United States Patent 7,257,201, System and method for unified messaging in inter/intranet telephony, Singh; Kundan (New York, NY), Schulzrinne; Henning (New York, NY), The Trustees of Columbia University in the City Of New York (New York, NY), Filed: Aug 13, 2001, Awarded: Aug 14, 2007. Also has international applications.
United States Patent 7,266,091, System and method for conferencing in inter/intranet telephony, Singh; Kundan (New York, NY), Nair; Gautam (New York, NY), Schulzrinne; Henning (New York, NY), The Trustees of Columbia University in the City Of New York (New York, NY), Filed: Feb 28, 2002, Awarded: Sep 4, 2007. Also has international applications.