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