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.
- 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.
- 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.
- 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
- 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.
- 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-)