marți, 19 august 2008

Softphone desktop market

What do you think, why is Skype so popular on desktops and route milions of landline and mobile minutes?

Why are non-standard voip clients (Skype, MSN, Yahoo, etc) present on every desktop but SIP is nowhere?

I have tried a lots of sip client application (almost all present on the market today). But i''m not happy with any of them. They are either too slow, consuming all cpu resources, either ugly -this is the case with most open source or java based software- or they are just not compatibile with my asterisk.


I think that the problem is that people don't have a user friendly sip application that just works.

I don't say that mizuphone is perfect ...but we are working on it :)

luni, 11 august 2008

How to optimize your telecom costs with MizuPhone?

Whether you're using VoIP for your residence or your business, you'll find it to be a lot cheaper than your normal landline or mobile telephone cost especially for long distance calls.
However, the cost varies from one voip provider to another. Some have low prices to USA and high for China for example. Some allow unlimited calls and some charge only a small fee.
Usually there are no additonal or hidden expenses.
With the help of mizuphone sip softphone, you can subscribe to more service providers, and always route your calls to the cheapest way. For this, you will only need to configure your "Dial plans".

NAT/Firewall isuses in sip telephony

Let me explain how softphones works behind NAT.
The first problem with NAT is to properly detect external ip address and port.
Mizuphone is using STUN, UPnP and SIP technologies to detect its external address properly in the following manner:
-if it has received a valid stun answer (two round) with the same ip/port, than we are using this address
-otherwise the external address is determined from the answers received to requests with via: received and rport
-if we don't get the answer from the above items, than we assign external port with UpnP and use that
-if UpNp fails, than mizuphone will be using the best ethernet interface address


Ok, now we have done our best to give our really usable address for other sip devices, but how about contacting sipservers and user agents at their correct address?
The SIP protocol is very tricky regarding this topic.
Mizuphone is using ICE technology and some proper tricks to do this tricky work correctly.
We can extract the transport address from multiple sources:
-the peer address where we are receiving its messages from or
-from the signaling (sent us in different sip header)
this can be present in multiple headers (via,route,contact,sdp media,from,etc) and when you have finished reading the sip RFC's the third time, you will realize the order and the importance of them
-we can even store the peer address(es) and use it when there are no better sources.
-or it can be entered explicitly by the user.
Even in this case there are complications if an outbound proxy is configured.
-and on top of this, the signaling address can change in the session (it is possibile to send the INVITE and BYE to different address)
When we are not sure what address to use, we can use forked calls and choose the best answer.
Forking the media is not a bandwidth saver thing, but sometimes this can be the best thing we can do.
There are sip devices, which are very inconsistent in their signaling, and are using different port to send and to receive messages ...to pick the correct address in this case is impossibile without forking the requests.

Good luck in choosing your best peer address! :)