[Kamailio-Users] Newbie questions

Alex Balashov abalashov at evaristesys.com
Mon Dec 28 20:17:29 CET 2009


On 12/28/2009 01:50 PM, Antonio Goméz Soto wrote:

> Hm, now I am getting a bit worried. Scaling up my asterisk setup using
> OpenSER will definitely not be as easy as I thought...
>
> So what parts can be done by openser itself? Can it do:
>
> - Attended transfer?

No.  It is not an endpoint.

> - Call Pickup? Directed?

No.  It is not an endpoint.

> - Call recording (mid call)

No, it is not an endpoint, although it can trigger external media proxy 
processes via APIs / control sockets (mediaproxy, rtpproxy) that can 
perform this functionality.

> - Listening-in (Training)

No.

> Also, asterisk has long had serious problems with showing
> callerid/connected
> party after attended transfer, blind forward or call pickup. Does
> OpenSER have
> those problems too? Does it support P-Asserted-Id or Connected Party?

OpenSER does not inherently support or not support a header;  it has 
nothing to do with them except to pass them along in a request.  It can 
attach them, and it can read their values if they are present and act on 
them in some user-defined way;  this is true of any such header.

> If a lot of calls need one of the above features, then using kamailio
> does not scale up my asterisk-based PBX too much, does it?

OpenSER cannot augment, extend or implement any of the PBX-like features 
you're looking for;  that is simply not what it does.  SIP messages 
enter OpenSER and they leave it, the effect of which is to intervene in 
and direct the establishment of calls to various destinations.

It is fundamentally a network element inside a VoIP service delivery 
platform, not an application server, PBX, feature server, or other type 
of call endpoint.  It's a rather low-level piece of infrastructure.

I think you may have misunderstood what it is people mean when they say 
that they use OpenSER to help horizontally scale their use of Asterisk 
out.  The role is a complementary one, not a substitute.  For example, a 
typical design for application or service delivery using Asterisk + 
OpenSER involves multiple Asterisk servers that behave identically when 
they receive an inbound call, regardless of which server the call came 
into.  This is typically done using some sort of database that keeps 
shared state, and most likely a central point of logic deployment, such 
as a FastAGI controller.  In this type of situation, as an example, an 
OpenSER-based load balancer in front of this farm of servers to 
round-robin among them or do other intelligent call distribution can be 
used to great effect.

But Asterisk (or whatever backend) must still provide the fundamental 
functionality.

Think of Kamailio the same way you would think of a Layer 3 IP router. 
What you are proposing is analogous to saying that a router can be used 
to scale an HTTP web server / web site operation.  A router cannot 
inherently do that, but it can assist in doing so as an element of a web 
server and network topology that makes that possible.

-- Alex

-- 
Alex Balashov - Principal
Evariste Systems
Web     : http://www.evaristesys.com/
Tel     : (+1) (678) 954-0670
Direct  : (+1) (678) 954-0671




More information about the sr-users mailing list