Hi!
I am planning to set up a centralized speed dial service for a 2-layer proxy
hierarchy.
The design should look like these:
PSTN
|
|
UA --> LOCAL_SP --> MAIN-PROXY <-- LOCAL_SP <-- UA
|
|
UA --> LOCAL_SP ------
|
|
PSTN
... and many many more local SIP Proxys (LOCAL_SP).
Any branch has a local SIP-Proxy which functions also as a PSTN-Gateway and
will route local calls, whether they are from inside or from the PSTN. The
users are configured on the local SIP-Proxy, which will also register these
user on a REGISTER-Request also on the centralized SIP-Proxy.
The Speed dial database should contain internal as well as external (PSTN)
numbers.
The tricky thing is, that the users have to use their local PSTN Gateway,
when they want to make off-net calls.
The call flow must like these:
UA -INVITE-> LOCAL_SP -INVITE-> MAIN-PROXY -> DB-Lookup for speed dial-alias
MAIN-PROXY --301_RESPONSE--> LOCAL_SP --301_RESPONSE--> UA -> Setup new call
with info from new contact header
Does anybody now how to setup OpenSER, that he will execute a DB lookup for
the user part of the R-URI and answers with a 301 response and the new
address in the contact header?
May I think the routing must look like this:
Route[x] {
NEW_URI = get_alias_for(1234);
append_branch(NEW_URI);
sl_send_reply("301" , "Number found");
}
But how to set up and querie the database?
Thx
Reto