[Serusers] incoming call routing, voicemail on busy/no answer, load balancing, call forwarding & call display
Greger V. Teigre
greger at teigre.com
Wed Jun 8 10:16:57 CEST 2005
Inline.
Chris St Denis wrote:
> I am implementing a rather large scale SER server and there are some
> features I am having trouble figuring out how to implement.
>
> 1. Multi-number Incoming call routing.
> My users register with my using an id number which then needs to be
> mapped to 0 or more real phone numbers for incoming call routing, and
> 0 or 1 for outgoing call display. Is there anyway to do something
> like this using radius? The backend database of my system will be MS
> SQL server (not my choice) so radius is being used to connect to it.
> Multiple numbers will use distinctive rings by inserting an alert
> info header in with append_hf.
I'm not sure I understand what you are asking here? You use the RADIUS AV
pair SIP-Rpid (in <= 0.9.2) and SIP-AVP=rpid:number (CVS HEAD) to return the
caller-id to ser and append_rpid_hf to add Remote-Party-Id to the PSTN GW.
Ex. for Cisco
append_rpid_hf("<sip:","@localhost; user=phone>;
party=calling;screen=yes;privacy=off")
When you say "id number", I assume you mean numbers from your internal call
plan. AFAIK, there is currently no way to read out aliases through RADIUS
avpairs. I believe Juha has a patch for this, but I don't know if it is
publicly available.
> 2. Voicemail on busy and no answer and no connect to phone.
> I think busy can be detected by looking for a response code but not
> I'm quite sure how, and I think I can use fr_timer for can't connect
> to phone timeout however, how do I detect no answer with a user
> customizable timeout? I am also not certain how to send it to the
> asterisk voicemail server at this point.
Dependent on your timeframe, you may want to hold on a bit on this. The
ONsip.org Getting Started document will cover this in a future issue.
> 3. Call forwarding
> How can I retrieve call forwarding information from a database
> (preferably using radius) and forward to it? this also leads to the
> no answer question above.
The avp_load_radius("callee") will load avpairs (SIP-AVP) returned with the
RADIUS reply and those avpairs will be available in failure route as
callee_name. You then use something like this (from memory, not tested):
if (t_check_status("486")) { # Busy
if(avp_check("s:callee_fwdonbusy,"re/[0-9].*/g")) {
avp_pushto("$ruri/username", "s:callee_fwdonbusy");
append_branc();
t_relay();
}
}
You should have a RADIUS attribute like this returned for callee:
SIP-AVP=fwdonbusy:12345678
> 4. Load balancing
> I have gotten failover to work with failure_route and t_on_failure
> however, I want to not just fail over but also load balance between
> multiple PSTN gateways. Can this be done using SRV records?
> round-robin DNS? is there some 'random' type command?
Look at the LCR module.
> 5. Call display
> I need to be able to block call display for incoming and/or outgoing
> calls. How can this be achieved from within SER?
Short-cut, not RFC-compliant for IPtoIP: Change From header
RFC-compliant: Use UAC module.
IP-PSTN calls:
append_rpid_hf("<sip:","@localhost; user=phone>;
party=calling;screen=yes;privacy=full")
(this is the short story, there's a long discussion on "what is privacy
etc")
>
> How can I do these things with stable SER? And, anyone know when .9 is
> planned to be released? Is it combing soon?
Forget about stable SER, 0.9.2 is very stable and right around the corner.
g-)
More information about the sr-users
mailing list