Saturday, January 3, 2009

My SIP Client application for CRM developers.

My own sip client Application
can be download from: http://rapidshare.com/files/179298377/SIPclient.rar
I put here a demo version of my own sip client development, based on Microsoft RTC and .NET frameworks 2.
So what does it able to do?
1. It is a regular sip client that can register to your Proxy or IP PBX such as Asterisk for making and getting calls.
2. It can search the caller id in your Outlook contact list and open the contact if found.
3. It can send the caller id via UDP socket to external application.
4. It can get dial command to setup a call from 3rd party application using UDP socket.

The layout is very simple and can be customized with your logo and colors.
Its shortcut the development time of CRM systems that needs some external dialer to make the calls and process incoming caller id search in the CRM data base.

This is a demo version for testing and the only limit is you can talk for 20 seconds.
In the retail version the only limit is I bind the application to predefined proxy and you can use unlimited copies of the application with no any call time limit.
In the RAR file you can find a small application I wrote for test the interaction with the 3rd party application, just run TestServer.exe and read the readme.txt file for more details.

How to start voip service - the important questions

Some colleges, friends and other people from around the world ask me more than once the following questions:
1. what voip business model would you recommend?
2. what equipment or solutions do you use?
3. what kind of investment and hardware would you recommend for starting voip service?

The answers to some of those questions are difficult to answer because it can be different from country to country and sometimes depend on the customer’s culture and habits. Even so I am involved in few project around the worlds its still hard for me to give strait answer. In this post I will try to cover few important points that any one that think about be a voip service provider MUST take in consideration.

Lets start with question number one: what voip business model would you recommend?

In my current company I had the pleasure to construct our voip services “my way” while in the past I always worked for existing service provider that already had business plan and its own way of doing thing. In Suomen Puhelin (http://www.suomenpuhelin.fi/) I tried to learn from the mistake of others and do things better.
First thing I did was to construct a voip solution for business rather than residential. Most of voip service providers are target their business for residential and international call market when they give very cheap call rates (sometimes its come on the expense of quality) when the main marketing activity is done using the internet. Some other small group of voip service provider will serve also business customer, but only as an alternate route just for international or other predefined routes (the customer main telephone is still using TDM technology from the local PTT).
My believe is if you do it good for business customer that demand quality and availability than automatically you will be good for any residential.
When I say good for business customers I mean that we CUT the customer old reliable regular PSTN line such as E1,T1,ISDN, analogue …and give him pure voip solution terminating ALL incoming and outgoing calls. Looking around the world you still see a lot of legacy big land lines operators that afraid of going this direction from the simple reason that giving telephony service on IP network is a good recipe for problems.
Think about simple problems such as someone in the organization download MP3 song and the boss get as result cutting voice in the phone call due to bandwidth problem.
In Finland as an example business customer will not sign a service agreement just because an operator give him 2 cent per minute discount, productivity solution that give the total benefits of voip solution THIS IS WHAT CUSTOMER LOOKING FOR!!!
Productivity have many forms when its come to voip, such as MOBILTY – using voip technology employee can be reachable from any point on the glob when he have internet. CONNECTIVTY- two remote branch offices can be connected as one logical unit using voip. SAVING- calls between branches are free even so branch office can be in different country. Human resources save and for this one the best example is a case study of one of our customers that built his help desk center in one location and take calls from its customers all over the world using voip to that helpdesk center. Before using voip this customer use few agents for support in each country and due to voip save big money.
Finland example is what I referred earlier in this article as culture things, because in other project around the worlds what count is the price per minute and customers over there ready to change service provider for few cents saving.
I gave this two examples because my believe is in better quality and productivity solution than price war – as much as you will be cheap in rate there is always the risk that some other operator will be cheaper and all your customer will migrate. From the other hand against good real solution its hard to compete. Other common mistake by ITSP’s or new voip service providers is the idea that they are going to make “easy money” most of them will not survive the competition and here is the simple calculation:
To be attractive with telephony rates 1-2 cent profit per minute (in some case less) that what left in international calls market for the service provider.
100,000 minutes will give profit of 1000-2000 Euro/Dollar. The big question is how many customer you will need for making 100,000 minutes? (I am not answering this question because its depend on the marketing budget ) I just can tell that its not always easy to reach 100,000 minutes per month and it might take between 6 month – 3 years for some operators to do. Another common mistake is wrong estimation of the market and the potential: I got some business plan that was to optimistic and consider values and goals that are not realistic in the time table the company pland to see the return of investment. One of the projects I was hired as consultant had a business plan that relied on the high number of immigrants that this country have all over the world as the main market target. By itself its not such a bad plan the only problem the operator thought to get on first month 5000 users, In reality they got less than 100.
In Suomen Puhelin (before I joined the force) they thought to give voip subscription to residential in half a price of the monthly fee compare to the land line local operator (operator charge 11 Euro/month and we 4.88 Euro/month) the dream was that people will wait on the line to join our service and as you can guess in reality it wasn’t. the last example bring me to other important point in voip “you need to learn how to make money from what you give for free” there is no any good voip promotion that not include the word “FREE” in it – in our company for example all calls inside the system are free. Company X connected to our system and speak for free with Company Y that also in our system, now company X and Y bring the new Companies A and B to us so they all can speak for free…..
Our main income is not from calls, but from sale voip solution that include the lines, equipment …. Every company pay some monthly fee for the local operator for the regular telephony lines for example E1 line will cost 180 Euro /month. In payment of 100 Euro/month the customer can get from us a complete new telephony system like Cisco UC520 or Siemens PBX in a leasing period of 5 years with sip trunk included and still save 80 Euro / month fro his E1 line.

2. what equipment or solutions do you use?

Over the years I used a lot of voip solution from many vendors. As much as sip is an open standard protocol available to the public you can be amazed how different manufactures interpreting the standard in different way, the funny thing they might be right because the sip standard is mostly use the word MAY or MAY NOT, RECOMNDED.. and you will find just few MUST in the context. When everything is recommended by the standard you can find some compatibly problems between different devices that can cause some problems in making, getting or during a call.
Not once we needed the vendors to fix some bug or make some changes in order for devices to work together.
Sip devices can work basically using two topologies:
1. point to point when the call going directly from one device to another for example between 2 sip gateways or two sip phones.
2. client server architecture using sip proxy as mediator for processing all signaling and security.
I will not get into the explanation of what is better as its depend on each project and its goals. What I will say is when working with SIP proxy in environment of multiple devices from multiple vendors you can fix a lot of the compatibilities problems in the proxy itself by changing the headers of the sip message (you will need your Proxy provider to do it for you).

As we target our service to business users we sale hi quality sip phones from Polycom, Siemens and Cisco. On those phones voice quality is simply THE best. We are NOT sale Grandstream, Snom, Sipura…and a like because voice quality is not come close to the other group.
I have a customer that come to us from another voip provider that put for him Grandstream phones, this customer wanted to continue use the existing phones and we just configure them to work with our system. One day the customer come to my office and use my Siemens Optipoint 420 sip phone to make a call, after he finish to talk he order all 7 new Siemens phones to his office.

For ATA adapter I use Patton M-ATA its small and very smart ATA adapter that have T.38, Hotline and a lot of other features. Its much more reliable than the popular Grandstream ATA’s.

The most interesting is voip gateways for E1,ISDN BRI, T1,J1 and analogue we used all kind from Audiocodes,Cisco, IPGEAR (today Teles) and the most in used by us today is Patton Smart Node family. All GW’s give you more or less the same result and the most different you will find in the PSTN/PBX interface processing. Patton Gateways found to be the best for us in Finland in compatibilities test with ISDN system. This is one of the only GW’s that can bridge between H323 and SIP and its have very good performance and flexibility.

In the IP pbx category Cisco win as its have the best sip trunk options than any other retail IP pbx on the market (I wrote RETAIL so Asterisk fan will not write to me comments). When you compare between market leaders in PBX market like Alcatel, Avaya, Siemens … Cisco still have the best sip trunk in the UC5XX and Call Manager products. In Cisco unlike the others you will find WAN and LAN Ethernet interface while the PBX can be connected as router to the internet and to the organization LAN. In others PBX models from the firms I mentioned above you usually will find only one Ethernet and you will need to connect the PBX either to the LAN nor to the WAN. The problem with sip trunk and voip GW’s is the need of the device to be with a public IP on the internet in order to avoid NAT problems (NAT can cause problem with voice and signaling). If you connect the PBX with one IP to the internet (PBX have real public ip) you must than have all the ip extension phones also to be on public ip. The other way around with pbx have one Ethernet interface connected to the organization LAN will require firewall and other one to one NAT solution that complicated the installation …This is why Cisco is my favorite IP PBX so far (even so it’s the worth one to configure as its not the most friendly using CLI).

Just for the note: we know how to connect Alcatel and Siemens and other to our system with sip trunk, but my recommendation is Cisco.

The latest Cisco Unified Communication 520 (UC520) have all in one included voice mail, auto attended, firewall, vpn… for average size business in Finland it a good answer.


3. what kind of investment and hardware would you recommend for starting voip service?

This question is easy for me to answer as its depend on the budget you have. I always recommend to a new ITSP or service provider to start with small system and grow in second phase to the large deployment. Operator grade equipment can be pricy from 200,000 – 1.5 Million.
Assuming you are not a big telco and look for something to start with I would recommend system that can handle 10,000-15,000 simultain calls.
A lot of operator start with Cisco PGW, Veraz, Alcatel or Ericsson pricy system. My model in mind is few small systems connected together and spread geographically in few POP’s (point of presents). This way you grow easy with the customers load you have backup in another place (POP).
Some can see it as negative as you need to run more than one system.
Any system you choose for giving services should be fully redundant when every part is duplicated. In disaster situation you must put up service back in minutes or seconds.
One of the key devices you will need is SBC (Session border controller) for handling all the Nat transversal problems, hiding and protecting your core equipment and topology and the only one in the market that do all is Acme Packets SBC (its also the most expansive one), this SBC in high availability will make fail over to the backup unit WITHOUT disconnect any call, it will protect your network against DoS attack (denial of service)….. after a good SBC you need to pick up you soft switch that handle all you subscribers, Gateways, service, permeations, billing….
Here you can choose any solution exist in the market and the one we use is iTone from Airspan. This softswitch can handle 15,000 or more calls with few millions subscribers in data base. Its have smart Centrex feature like: call forward (busy, no answer,unconditional), transfer, do not distrbe, call filter, IVR, Auto Attended, wake up call, busy call completion, call back…..(long list) .
The most powerful feature for me was the API that come with it and let us construct our own customer self care via our web site according to our business model. Our customer can open themselves account on-line with 3 different subscribers (phonet free, pin code and real phone number), they can go via the bank and load balance for making calls. if we operate in other country we can customize the pages to other language…. Second important for me was the access directly to the R&D developers that fix in the soft switch a lot of compatibilities problems for us, for example: Cisco PBX don’t like some sip header coming from Patton – we have 3 choices:
1. ask Cisco to fix -= wait long time for fix.
2. ask Patton to fix = wait for next firmware release .
3. ask Airspan to fix = wait 1 week or less.
Even so its not bug and not Airspan problem we can fix fast a lot of things in the soft switch and give fast response to our customers.
Here will be a good point to mention Airspan system intgrator, company name Mindsys Ltd. Mindsys is the interface between the customer (me and others) to the R&D unit in Airspan, with knowledge of over 20 years in telephony systems . System integrator is one of the most important factors for how fast and smooth your deployment is going to be. Take no mistake since you decide what you buy until the time you will go public with service its going to take few month (7-14 month). In this time your people will need to learn how to operate the new system, test of equipment and services you are going to sale, marketing, support training......
FOR SUCESSFULL VOIP PROJECT YOU NEED A GOOD SYSTEM INTEGRATOR.
http://www.mind-sys.com
You can do a lot of fix yourself via the Acme Packet SBC if you have one as you can change there any sip header and value from and to any direction.
When we talk about soft switch with 15,000 simultains calls we must remember that the soft switch handle only the signaling while the real problems is to handle the media and this is the job of the SBC and this is the reason I always say first choose the best SBC and than the soft switch. You can take the best soft switch in the world, but if you have media problems you will fail to have service.
Most of customer that come to us after trying other voip provider is usually due to the fact the competitor try save on good SBC and use all kind of less recommended solution like STUN or media relay server (do not get confuse media relay is not SBC).
For the prices:
A good starting point system that include redundant soft switch in cluster architecture, redundant SS7 signaling GW with 8-16 E1 lines, Hi availability Acme SBC, billing system for post paid /prepaid starting investment should be from 250,000 Euro and up depend on brands.
I know about operators that start a lot cheaper with open ser and Asterisk, but I am talking about service for business, the open Ser and Asterisk are the Soft switch and still you will need a good SBC, SS7 gw if you want good price from PSTN termination and sale your own real phone numbers, the server hardware for the Soft switch what ever it is will be redundant so on the end you can save about 100,000 Euro using some open source solutions.
From the other hand I know operator that brought Alcatel or Ericsson with investment of 2 Million Euro and can not offer 20% of the services we are offering.

VOIP service is something that need to be innovative and bring all the time refreshments in sort of new services, some gimmicks like all kind of USB memory stick phones, call back service, we are not publishing to our customers all the services available at once so every few month we bring something new to the market. We give the customer all the controls via our web site from the customer pages after log in. we try to make it easy for the customer using remote provisioning and we have a say “that even our grandmother should be able to use our services”.
As small operator that start from scratch you must automated a lot of process like users can open account themselves or provision their accounts, unless labor cost is not issue in your region

Friday, January 2, 2009

SIP Flash Phone with Openfire XMPP server.

For my humble opinion the following open source project is one of the interesting SIP innovations.
For long time voip service providers looked for a client (application) that will be working from ANY browser, with no need of installation and configuration. The main problem is to find a common component that can run from any browser running on any operating system. Each browser on the market support its own add-ons plug-ins and technology, for example you can run ActiveX component on Internet Explorer, but it will not work on Netscape or Firefox.... you can try Java applets, but than you are limited about voice and media that will require JMF(java media frameworks) .....
The ultimate solution found using Adobe Flash technology with RED5 open source flash server.
Flash players are working almost with any browser and can have a good integration with Java code.
Thanks to Dele Olajide (http://www.igniterealtime.org/community/blogs/ignite/2008/05/05/flashbased-audio-in-openfire-part-ii)
We have today a very good and solid development starting point for converting Flash into SIP voip calls. The big challenge was to transcode in real time Flash media stream (FLA) to a known voip codec such as G711.
The first version of this project used like many others sip bridging application (like sip to skype solutions) VAC technology (virtual audio cable).
The limitation using VAC was the number of calls you can run on a particular server as in one PC you can have MAX of 32 virtual audio ports = 16 calls (need 2 audio ports for each call).
To make long story short Dele developed the idea of using Flash phone without the need of VAC.
Instead he created the asao component that transcode Flash media stream into G711 codec.
You can read details explanation on the Ignite Real-time blog.
My small contribution to Dele's work was in improving the compatibility of the Mjsip stack used by Dele and make it compatible with other system that are not Asterisk ip Pbx (Dele made all his test only with Asterisk). If you follow my blog you see my privies post on SiptheeSkype which also using Mjsip stack and Java code, so what I did was copy some fixed code from SiptheeSkype into RED5 plug in for Openfire server.
You can run the Flash Phone on a Windows or Linux PC by installing RED5 (http://osflash.org/red5) flash server on it or using Openfire (http://www.igniterealtime.org/downloads/index.jsp) with latest RED5 plug-in.
For installation and support the best place would be RED5 plug-in community forum on http://www.igniterealtime.org/community/community/plugins/red5

The solution is working, but is not yet perfect, need to improve voice quality and optimize the handle of the conversion from FLA to G711. We are all waiting for Flash player 10 that will support Speex codec and will be welcomes improve to this project as Speex is open source codec what mean more possibilities of converting it to other codecs stream (transcode).

I was testing the latest RED5 plug-in from Dele a while ago against our operator grade Voip system with and without SBC's (session boarder controllers)... compare to the starting point of the first version I tested with VAC technology a year ago the future of this project look promising.

I have not put this solution in production yet (instead of the ActiveX we use in IE which I wrote my self in VB) because of small problem related to voice activation detection (VAD) - for some reason on random time I can not get transition of the voice from the Flash player unless I open settings of the voice in the Flash component. I tried canceling VAD in the Flash Player properties page in Dele source code, but it is not completely solve the problem.

Until than we will continue to use ActiveX component from IE browser.

I would like thanks Dele and others that help and contribute to the RED5 Flash phone project.