Hi,
I'm working on extending my OpenSER configuration to allow
a user account to have one or more aliases.
User A is reachable by calling A, but also using alias B or
C. I have this working for calls to the UA, but I'm having
problems with registration attempts from A and calls from
A to other UA's or PSTN where it wants to send B or C as
outgoing CLI.
For some reason, all UAs I've seen so far need to register
their aliases to be able to send an alias as outgoing CLI.
My OpenSER config uses the following to check authenticate
the user (from an old SER example:
if (!www_authorize("domain", "subscriber"))
{
www_challenge("domain", "0");
exit;
}
if (!check_to())
{
log("LOG: To Cheating attempt\n");
sl_send_reply("403", "That is ugly -- use To=id in REGISTERs");
exit;
};
When a UA tries to register an alias the www_authorize()
succeeds, because the UA sends the correct authentication
data for A, but uses the alias B or C in the To and From
headers so check_to() fails with the error that B or C is
being spoofed.
I (OpenSER) know that B and C are aliases of A, but how do I
make this registration logic accept that and send a 200 OK message
back? (I also don't want to save the registered alias in the
location table, but that part I know how to do, I think).
The calls using outgoing CLI of the alias have I think the same
problem where the From header has an alias where check_from()
expects the data for A. I think the solution for this would be
something comparable to solving the registration problem, correct?
Thanks!
--
Andreas Sikkema