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
Show replies by date
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(a)openser.org [mailto:users-bounces@openser.org] On Behalf
Of M D
Sent: Wednesday, July 26, 2006 10:13 AM
To: users(a)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