Archive for the 'pjsip' Category



Version 1.0-rc3 is released

“Good news, everyone”.

PJSIP version 1.0-rc3 is ready. This release focuses on fixing bugs to make the libraries more stable for the upcoming 1.0 release. Some areas where bugs have been fixed include tone generator issues, SIP forking issues, and unexpected SIP message flow causes an assertion or crash.

Some enhancements have also been made on this release. Please see the ticket list in the Release Notes for the detailed list.

As usual, please go straight to the PJSIP download page for more info.

Version 1.0-rc2 is released

“Good news, everyone”.

PJSIP version 1.0-rc2 is ready. There’s not too many updates here (which is good, by the way), only 9 tickets on this release, but nevertheless some important bugs were fixed. So we’re inching closer towards the 1.0 release.

There’s not much else to discuss here, please go straight to the download page for the details.

Version 1.0-rc1 is released with new Python SIP, Nokia APS support, and IPP codecs

“Good news, everyone” [Professor Hubert J. Farnsworth, Futurama]

This is an interim release, intended to mark the end of features development in the trunk. From now on, it will be tests and bug fixes only, until we reach 1.0. This will be our first proper stable release, and it will be given a separate branch, to isolate it from bleeding edge developments in the trunk.

Because of that, there has been a bit of “pressure” to stuff in as much features as possible on this release, since this is the last change to include them in 1.0. Here are some of them:

  • Integration of Intel® IPP Codecs.  This brings us with bunch of new codecs into PJMEDIA, such as G.722.1, G.723.1, G.726, G.728, G.729A, AMR NB, and AMR WB. Basically the lot! For more info about this integration, please see here.
  • New Python API. We discussed this on this blog a month ago here, basically it’s a new Python API for PJSUA-LIB, it’s much easier to use, and it also has a more thorough documentation/tutorial. Please check that out.
  • Nokia APS Support. The Nokia Audio Proxy Server is a wrapper to Nokia S60 sound device, it has much lower latency than Symbian MMF API (the traditional sound device that we support), and it also opens up support for device’s native codecs such as AMR, G.729, and iLBC which we can use in the future.  Although this API has been deprecated by Nokia in FP2, still there are lots of S60 and FP1 devices out there, so this is worth supporting.
  • New Echo Suppressor. Good for mobile devices, we discussed this in this blog here.

And some more. For more information regarding this release, please visit the download page.

Enjoy.

Python SIP Take Two (Part 1)

Python is here again!

More than a year ago I wrote Python binding for PJSIP. It was alright, we can have some Python applications done using this wrapper. But, it’s not really having the impact that I expected. I’m talking about programming experience here and not popularity or things like that.

I mean, Python programming is supposed to be easy, and above all else, fun and enjoyable. But the wrapper is not doing that. I don’t know what it is, maybe it still smells too much like C, or maybe it’s the lack of documentation, or both, or something else. Bottom line I was not too impressed, so I’ve always thought about redoing it.

And now it’s done!

With the new module, we now do the absractions in two layers. The lower layer is the _pjsua C extension which exports PJSUA API to Python. This is similar to how the old Python extension was implemented. But now we also add a higher layer abstraction, object oriented, pure Python module on top of this. And that is the pjsua.py module.

The pjsua module provides high level API for constructing Session Initiation Protocol (SIP) multimedia user agent applications (a.k.a Voice over IP/VoIP softphones). It wraps together the signaling, media, and NAT traversal functionality into easy to use call control API, account management, buddy list management, presence, and instant messaging, along with multimedia features such as local conferencing, file streaming, local playback, and voice recording, and powerful NAT traversal techniques utilizing STUN, TURN, and ICE.

Hopefully it really is easier and more fun to use now.

Ready to go? We’ve also created more thorough documentation this time, start your development from this page: Python SIP Tutorial

And stay tuned for next parts of this post, we may have some interesting applications to publish (hints: I’m thinking about SIP client program for Nokia S60 platform, with PyS60. Wish me luck!).

PJSIP 0.9 is Released: Audio Latency, TURN implementation, IPv6, G.722, and More

Finally, after months of delay, PJSIP version 0.9.0 is released. This has been the longest gap (8 months) between releases, and consequently it has the most modifications in it (there have been 100+ tickets done on this release).

Some of the new features in this release:

  • many improvements in the audio, to reduce audio latency, to have better compatibility with more target platforms (Windows Vista issues have been fixed, as well as sporadic error reports for ALSA), and to maintain the audio quality against impairments such as clock drifts, bursty sound device, and of course, packet loss. Compared to version 0.8, I think we’ve improved audio latency by few hundred milliseconds.
  • support for TURN-07 in PJNATH, either as standalone client/server library, standalone client/server application (for testing purposes), or integrated with ICE-19. Just as we were the first to release open source ICE library, I think this is also the first open source TURN implementation out there. Unfortunately we haven’t had time to update it to TURN-08 as this draft was released late during our QA phase, but we’ll update it as soon as possible.
  • fixed the ICE offer/answer rules.
  • support for IPv6.
  • support for Secure RTP (SRTP)
  • better support for Windows Mobile target. We have new and more usable sample application (PocketPJ) and GSM and Speex codec should now be available for this target.
  • better support for Symbian S60 target. There is a more thorough Symbian tutorial available, and GSM and Speex codec should now be available for this target too.
  • implementation of G.722 codec.
  • support for RTCP Extended Report (XR)
  • and many more.

For more information, start from PJSIP download page. Get it while it’s hot!

PJSIP website is in The Planet; and it’s down

UPDATE: FIXED. Apparently it was an unrelated problem. But it has prompted us to add even more resilience to our  infrastructure.

The main pjsip website is hosted with WebFaction.com which in turn have their server hosted by The Planet. And as reported, there was an explosion at one of their data center.

Initially we seem not be affected, however http://www.pjsip.org is now down and we assume it as due to that.

So apologies to everyone trying to download.

All the other services such as this blog, svn/Trac, and mailing list are hosted on separate services (precisely to guard against these kind of catastrophes) so they are fine.

We also have a backup web server but it was recently reformatted and not yet ready. We’ll try to have it up as soon as possible.

Sorry for any inconvenience.

Command Line SIP Client

Josh Benson of Open Source Society tells us how pjsua can be used as fully featured SIP client to solve real life problems in PJSIP: Command-Line VoIP Client for Linux:

Some time ago, I was tasked at work with finding an IP telephony client that used the SIP protocol, ran on linux, and did everything from the command line. The goal was to have a program that could be deployed at remote networks to test the quality and performance of VoIP calls between the remote site and our central Asterisk VoIP server.

Read more..

Josh has it spot on. While pjsua is intended primarily as the reference implementation of PJSIP (command line programs are always easier to learn than GUI), it is also intended to have the full features of a SIP client. Softphones with pretty GUI are easier to use, and they are also easier to find, but for some specific tasks, sometimes we have to revert back to using the good old console application, and that’s where pjsua fits the bill.

I’m glad that Josh and others find it useful. Thanks Josh for sharing your experience.

[Update: As the Open Source Society website is gone, I've removed the hyperlink. Sorry. Let me know if this is temporary and it's back]

You Can Now Make Phone Calls from Your iPod touch

It’s official. The folks at touchmods.net have ported pjsip and released a SIP client for iPod touch.

VoIP on iPod Touch

eok did manage to make the Nintendo DS-based SIP app from Samuel running on the iPod Touch!!

VoIP confirmed!!! « iPod Touch Mods

After Nintendo DS, here is another pjsip port along the lines of VoIP on Consumer Devices product line: internet telephony on the iPod Touch. It needs a hardware modification to make activate the microphone though, so definitely not for the faint of heart!

Breaking changes in source code repository due to IPv6

Dear all,Just want to inform (and give a bit of warning) that the SVN trunk is now “officially” incompatible with the last 0.8 release, due to major work to support IPv6.Unfortunately these changes will affect all applications that are based on the pjsip and pjmedia, regardless whether IPv6 is used. Potentially there shouldn’t be any changes to applications that are based on pjsua-lib.Most of the changes should be trivial though, related to changing pj_sockaddr_in structure, which is IPv4 specific, to pj_sockadr union in few places, and adding “af” (address family) argument to few pjlib functions to select the appropriate address family type.Here’s the declaration of pj_sockaddr union, just to illustrate what change should be required if pj_sockaddr_in is changed to pj_sockaddr:

typedef union pj_sockaddr
{
  pj_addr_hdr     addr;
  pj_sockaddr_in  ipv4;
  pj_sockaddr_in6 ipv6;
} pj_sockaddr;

Currently pjlib, pjsip, and pjmedia have been patched with IPv6 support.The DNS stuffs in pjlib-util and STUN/ICE stuffs in pjnath are next.

You can track the development of IPv6 support in: http://www.pjsip.org/trac/wiki/IPv6

[pjsip] Incompatible changes in SVN repository due to IPv6

« Previous PageNext Page »


Follow on

Subscribe to blog updates

View Perry Ismangil's profile on LinkedIn

a


Follow

Get every new post delivered to your Inbox.

Join 625 other followers