There are plenty of ways to deal with
routing calls within openser. You can use avp’s to lookup records from
sql and then append branch to fork calls. As long as all of your end-points are
sip-ua’s and not pstn gw parallel forking should be ok but if you try to
forward one of them to pstn gw things can get tricky.
Basically you have a entries for DID which
you have assigned and do a avp_load and/or avp_check to see if it is a DID you
own and how to route it. Also, you could use aliases I believe.
From:
users-bounces@openser.org [mailto:users-bounces@openser.org] On Behalf Of M D
Sent: Wednesday, July 26, 2006
10:13 AM
To: users@openser.org
Subject: [Users] OpenSER/Asterisk
architecture
Hi
We're looking at using OpenSER as a front-end to the Asterisk boxes we're using
to provide a SIP VoIP service to distribute load and handle the RTP streams
better. Our customers (who're all over the Internet) use the service primarily
for calls to/from the PSTN with little, if any, SIP-to-SIP traffic. Having said
that, we're providing PBX-like functions to some customers: voicemail, call
groups, IVRs etc which we need to retain. Our PSTN connection is provided over
SIP by a couple of different telcos; we just send/receive INVITES to/from them.
How're people on this list implementing this kind of platform? OpenSER in front
of Asterisk, Asterisk PSTN gateway? Something else? In particular, I'm having
trouble seeing how DID calls will work. Let's take the following DIDs as
examples and assume that inbound calls are sent to OpenSER:
442071111111: straight mapping to a singe SIP account
442072222222: a group of 3 SIP accounts to ring simultaneously
The first case would work with users registering to either OpenSER or Asterisk,
providing they shared a user database. In the second case, we would presumably
have to forward the call from OpenSER to an Asterisk box to handle calling the
3 users, dealing with voicemail, etc.
I suppose the crux of my problem is that I can't see how to get OpenSER to
route calls based on the dialled number. Any ideas? I could use an external
script and exec_dset but that seems clumsy; surely someone's done this before?
This whole thing's a solved problem, right?
How about outgoing calls? If a user puts a call through OpenSER to the PSTN it
should be easy to check the usrloc DB to control access and allow the call out.
Sound good?
Any hints on how to take this forward would be greatly appreciated. Once we get
a plan in place the implementation should be reasonably straightforward (I
hope!)
Cheers,
MD