How to restrict calls to only registered users
There are a couple of ways to authenticate INVITEs.
Using membership in the grp table you can try the following:
if (!is_user_in("From", "active")) { exit; };
You need to insert a username, domain and grp=“active” into the grp table for the above test to pass.
If you would like to use AVP's, the following example might work for you:
if (avp_db_load("$from/username", "s:active")) { if (!avp_check("s:active", "eq/y/i")) { exit; }; };
You need to insert a username, domain, attribute=“active”, value=“y” in the usr_preferences for the above test to pass.
Another (or additional) test would be to execute the following logic:
if (is_method("INVITE") && !allow_trusted()) { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); exit; } else if (!check_from()) { sl_send_reply("403", "Unauthorized: From username does not match digest credentials"); exit; } else { append_rpid_hf(); }; consume_credentials(); };
It is possible to use all three methods above at the same time to provide granular control over INVITEs.