croczilla.com 
 home   stratified   bits&pieces   blog   personal   
  home > blog > zap! v0.2 released
27 January
2006

zap! v0.2 released

[zap] 

I'm pleased to announce the release of zap! v0.2, the open-source xulrunner-based SIP client.

Binaries for testing are available at

www.croczilla.com/~alex/zap-0.2.zip (Windows)

and

www.croczilla.com/~alex/zap-0.2.tar.gz (Linux). Update: Now includes the missing files reported by Peter (see 3rd & 4th comments below)

Release 0.2 focuses on voice media sessions (i.e. internet telephony). You can find more information about our future plans for zap in this whitepaper.

Some Highlights:

- Not tied to any SIP service. In fact, unless you are behind a particularly nasty firewall, you should be able to make calls without a SIP account and without any configuration.

- Should work with all SIP compliant service providers.

- Supports multiple SIP accounts.

- Source code licensed under MPL/GPL/LGPL. This includes the SIP stack and media pipeline, which were designed and implemented from scratch for Mozilla.

- Individual parts, such as the media pipeline kit, the SIP stack, or STUN server/client, can be reused by other Mozilla-based projects.


Posted by alex at 15:30 | Comments (8)
<< zap! | Main | zap! v0.2.1 >>
Comments
Re: zap! v0.2 released

So, when you say that it should work without a SIP account - can you explain a little more how that would work?

I download this software, someone else downloads it, and we can just call directly to each other?

Posted by: Greg at January 27,2006 19:00
Re: zap! v0.2 released

Greg:

It depends. If you are connected directly to the internet (i.e. you're not behind a NAT router or firewall), then someone else can call you directly at "sip:your-ip-address".

Obviously this is not a very robust mechanism: You might have a dynamic address that changes over time, or your physical location might change (office or home). So registration of a well-known "address-of-record" such as "sip:myname@mysipserviceprovider.com" is usually desirable.

The point I was trying to make was that zap, unlike some other SIP clients, does not require you to register with any SIP service before you can receive or make calls, so you can just go ahead and try to call one of the "interesting" SIP addresses (such as sip:613@fwd.pulver.com or 411@fwd.pulver.com) without bothering to create an account with a service first.

Posted by: alex at January 27,2006 19:59
Re: zap! v0.2 released

I downloaded the linux binaries but it doesn't work. The rdf files under profile are all symlinks to your home directory and therefore cannot be opened.

Posted by: Peter Leugner at January 27,2006 20:19
Re: zap! v0.2 released

Peter:

Doh. Thanks a lot for diagnosing this. I've updated zap-0.2.tar.gz with the proper chrome/ and defaults/ directories.

You can also download these directories separately here.

Posted by: alex at January 27,2006 22:07
Re: zap! v0.2 released

When I update codebase today,build broken.

/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/build/cygwin-wrapper /cygdrive/c/tools/moztools/bin/nsinstall -m 644 xpcomglue.lib ../../../dist/lib
/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/build/cygwin-wrapper /cygdrive/c/tools/moztools/bin/nsinstall -m 755 xpcomglue.lib ../../../dist/sdk/lib
make[6]: Leaving directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt/xpcom/glue/standalone'
/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/build/cygwin-wrapper /cygdrive/c/tools/moztools/bin/nsinstall -m 755 xpcomglue_s.lib ../../dist/sdk/lib
make[5]: Leaving directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt/xpcom/glue'
make[5]: Entering directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt/xpcom/base'
/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/build/cygwin-wrapper /cygdrive/c/tools/moztools/bin/nsinstall -m 644 xpcombase_s.lib ../../dist/lib
make[5]: *** No rule to make target `/bin/xpt_link.exe', needed by `_xpidlgen/xpcom_base.xpt'. Stop.
make[5]: Leaving directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt/xpcom/base'
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt/xpcom'
make[3]: *** [libs_tier_2] Error 2
make[3]: Leaving directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt'
make[2]: *** [tier_2] Error 2
make[2]: Leaving directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/d/OpenSrc/SeaMonkey_1_5/mozilla/sm_zap_xul.opt'
make: *** [build] Error 2

Posted by: Yunin Tang at January 29,2006 13:55
Re: zap! v0.2 released

Yunin:

Thanks for reporting. The branch should be building again now. I had to merge in a couple of trunk changes.

Posted by: alex at January 29,2006 22:18
Re: zap! v0.2 - SIP registration

Hi,

I'm trying to use zap with my Asterisk box as a SIP client. Here I have to register with a user and password, but nowehere in the dialogue boxes of zap do I see a place where you can enter the password bit. Here is how I understand it works:

1) You create a service
2) You create an identity and then tie it to a service

OK, that seems to sort-of work without passwords, but then I have to disable the password on my Asterisk. However, I cannot register with any SIP provision system due to the fact that I don't understand how to put in a password.

Thanks!

PS: The sound quality when I phone the FWD TellMe service is absolutely stunningly good! Well done!

Posted by: Jan Henkins at February 01,2006 05:58
Re: zap! v0.2 released

Jan:

In theory it works like this:

1. In Asterisk's sip.conf add an entry like this:

[myextension]
type=friend
username=myusername
secret=mypassword
host=dynamic
nat=yes

You might also want to set the realm (under [general]):
realm=mydomain.com

2. Restart asterisk

3. In zap, add a service definition (Sidebar > Configuration > SIP Settings > Configure SIP Services ... > Add New Service):

Name: myAsteriskService
Domain: mydomain.com
Route 1: <sip:mysipserver.mydomain.com;lr>
(Note the 'lr' here - it is important)
UA Contact Address: 'Resolve by OPTIONS'

4. In Zap, add a new identity (Sidebar > Identities > Create a new identity):

Address of record: myusername@mydomain.com

5. That's it. Zap should now immediatly try to register with your Asterisk box and pop up a dialog box to ask for your password and the option of storing your password for the future.

You can check all the passwords that zap has saved from Sidebar > Configuration > Security. You can also set a master password there to make sure that zap stores your passwords encrypted and not just obscured.

So much for the theory...
In practice I find that with my Asterisk installation (version 1.0.8-r1) there are a couple of issues:

- This version of Asterisk has an 80 character limit for the registered contact. Unfortunately zap's contact address are usually longer than this (this is to support multiple accounts and multiple instances of zap running behind the same address). Asterisk will silently chop of everything above 80 characters and (at least from zap's perspective) the registration fails.

- Asterisk's registration handling (at least for this version) is somewhat non-comformant (it doesn't send a "stale=true" parameter for stale nonces), so zap will repeatedly pop up the password dialog after every registration period (for Asterisk this defaults to 120s).

Both of these issues could be 'fixed' in zap by introducing some compatibility config options. Before I do so, I would like to find out whether these issues are particular to this Asterisk version.

Could you please get back to me (on email or irc - irc.mozilla.org channel #zap, nick afri) with your success or failure story?

Posted by: alex at February 01,2006 12:35