Thursday, September 10, 2009

SIP Router: Apply Changes to SIP Message in Config File

One of the most discussed architectural aspects of configuration file was the way changes done to received SIP messages are handled – even new headers are added, old are removed or different parts of message were updated, the changes were not immediately visibile.

The latest GIT repository includes a new config function – msg_apply_changes() – exported by module textops from modules_k folder. Once this function is used, all changes done up to that point are applied and further processing within config will see the new message content.

The new function can be used only in request route for now. Be carefully when using it, since it changes the expectation you had so far of always working on initially received SIP message. Once the function is used, initial content is lost forever. As it builds a new buffer and re-parses, it is not very recommended to use it extensively.

Example of usage:

append_hf(”My-Header: yes\r\n”);
if(msg_apply_changes())
{
# msg buffer has a new content
if(is_present_hf(”My-Header”))
{
# will get always here
}
}

Readme of the module:

http://sip-router.org/docbook/sip-router/branch/master/modules_k/textops/textops.html

The functionality will be part of upcoming Kamailio (OpenSER) 3.0 release.

Wednesday, September 9, 2009

Freezing for Kamailio 3.0

Time for first release based on SIP Router Project is approaching. Source code will be frozen Monday, September 14, 2009, to enter the testing phase for releasing Kamailio 3.0.

As usual, work on additional tools and documentation can go on during testing. Developers willing to push brand new features in the next major release have to hurry.

A draft of new features is compiled at:

http://sip-router.org/wiki/features/new-in-devel

For a complete picture of what Kamailio 3.0 will bring new comparing with 1.5 you have to check inherited features from SIP Express Router as well:

http://sip-router.org/benefits/

Friday, September 4, 2009

Support for ‘include’ in config file

The configuration file language of Kamailio (OpenSER) and SIP Router supports now a new directive that allow including the content of another file during parsing of routing logic.

This allows splitting big configs for easier maintenance, even modularity — building a library of config snippets that are included and combined to build a full configuration file.

The syntax is:

include_file “file_name”

There is no restriction of what the included file should contain, it must be a valid content for the place where the include directive is used.

Here is an example:

route {
...
include_file "/sr/checks.cfg"
...
}

--- /sr/checks.cfg ---

if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}

---

The feature is documented at:

http://sip-router.org/wiki/cookbooks/core-cookbook/devel

Thursday, September 3, 2009

Kamailio Jobs at 1&1, Karsruhe, Germany

Interested in working with one of the biggest Voice over IP networks in Europe? 1&1 is hiring and have two open positions in Karlsruhe, Germany.

For more information (requirements, how to apply..) please refer to the openings on comapny's job page (German). Some facts about our VoIP system can be found at:

http://www.kamailio.org/events/2009-linuxtag/presentation.pdf

Shortly:
  • over 2 million subscribers
  • over 1 billion minutes per month
  • over 50 servers SIP platform

Please feel free to contact Henning Westerholt ( henning.westerholt [at] 1und1.de ) for any question.

Info about positions:

Tuesday, September 1, 2009

Kamailio Awarded Best of Open Source Software 2009

InfoWorld has published the Best of Open Source Software Awards 2009. Kamailio (OpenSER) has been awarded within category: Best of Open Source Networking Software.

From InfoWorld site:

"Award winners in network and network management are old favorites Cacti and Nagios, the IPCop firewall, Kamailio SIP proxy server, KeePass password manager, Openfiler SAN/NAS appliance, OpenNMS enterprise monitoring system, PacketFence network access control solution, Puppet configuration management framework, and Untangle network security gateway."

"Kamailio is the open source SIP proxy server formerly known as OpenSER. Used with an Asterisk IP PBX server for phone features, plus a hardware gateway for connection to the outside world, Kamailio brings important call handling and scalability benefits to Asterisk, while also removing the Asterisk server as a single point of failure. Larger organizations get the phone features they need, as well as the added safety of VoIP calls surviving an Asterisk server outage."




Here it is...

On the other hand, Kamailio project is approaching the time for a new major release -- a matter of days to enter the testing phase -- this one will be versioned Kamailio 3.0 to reflect the major enhancements, among them: the http://sip-router.org core, asynchronous TCP, asynchronous SIP message processing API, memcached backend, native topology hiding, nat traversal using kernel space for media relaying ... see more at:

http://sip-router.org/benefits/

http://sip-router.org/wiki/features/new-in-devel

The news on project's website:
http://www.kamailio.org/mos/view/News/NewsItem/Best-of-Open-Source-Software-Awards-2009/

Monday, August 17, 2009

QjSimple - Portable SIP softphone

I was looking to find a SIP softphone that is portable - targeting Windows, Linux and MacOSX. One of the most important features: handy for developers playing with SIP and VoIP.

So far, I worked mainly on Linux and there the old (obsoleted?!?!) KPhone did (still does) a great job. There are other free softphones, Twinkle is one of the best, but I needed something for MacOSX.

Few weeks ago I checked QjSimple, a project led by Klaus Darilion (which is also developer and management board member of Kamailio SIP Server). It uses pjsip library and has QT interface, porting was piece of cake - just some Makefile update.

Now, version 0.6.3 is offcially available for Windows, Linux and Mac OS X.

Friday, August 14, 2009

SIP Router Project - GIT, Wiki and Bug Tracker

I have played a bit with dokuwiki and developed two plugins for it that allow quick referencing with GIT and FlySpray:

FlySpray is a lightweight bug tracking system that uses dokuwiki syntax, therefore any syntax plugin for dokuwiki should work out of the box for it as well.

Applied to SIP Router project, that means:

For FlySpray, when one describes or comments a bug, he/she can reference to a git commit by using: GIT#hash

- hash must be at list the first six characters of git commit hash value

Unfortunately FlySpray accepts only plain text in the "Close Task" description, so the GIT reference does not work there, yet.

In dokuwiki same syntax can be used. In addition, one can add references to FlySpray items via: FlySpray#itemid

- itemid is the integer id of FlySpray tracked item

I tried to collect all these plus other options for DW syntax in a wiki page:
http://sip-router.org/wiki/tutorials/contribute-to-dokuwiki

Saturday, August 1, 2009

VirtuaBox 3.0 and Mac OS X

I am quite impressed by the last release of VirtualBox, the 3.0.x, it runs fast using low resources. Having Ubuntu 9.04 as guest on Mac OS X goes smooth, the auto-detected focus makes usage of keyboard and mouse straightforward.

The only problem I encountered is using bridged network mode with airport. I get IP address via dhcp, setting for dns, but the gateway is not reachable. The other computers in the network are visible via IP, but access to internet doesn't work.

I need this mode so other nodes can connect to guest OS on my laptop -- here falls the SIP phones I used to test the development of Kamailio (OpenSER) and SIP-Router.org. Internet access is nice to have although I can do it from the host OS, having it on guest OS makes everything move faster.

The solution I found is to add a second virtual network card to guest OS which is set in NAT, and voila! internet access. Nice!


Don't forget to install guest additions, they are marvelous for Ubuntu 9.04 - full screen in the way you barely notice you haven't booted directly Ubuntu.