[OpenSIPS-Users] Get IP/Port of registered user (or from Location table?)
Liviu Chircu
liviu at opensips.org
Fri Nov 15 18:48:45 CET 2013
Hello bluerain,
A couple of useful information:
* a user may be subscribed (in the "subscriber" table), but the lookup
call may fail, because he is not registered (in the "location" table)
* lookup indeed performs a lookup based on the Request-URI username, and
rewrites the same URI in case the operation is successful
* with "lookup("location","d","FRANK101")", OpenSIPS should not start.
Correct this as follows:
$var(aor) = "sip:FRANK101 at ip";
lookup("location","d","$var(aor)")
Notice how the parameter MUST be a pseudo-variable containing a sip URI.
Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com
On 11/15/2013 07:30 PM, bluerain wrote:
> Hello Bogdan,
>
> I tried to use lookup("location","d","FRANK101") and it seems opensips can
> not find the user, even though the username "FRANK101" is in the subcriber
> table.
>
> So it is my syntax is wrong on the "lookup" function call?
>
> And please correct me if I am wrong also, I was under the impression that if
> an INVITE comes in from Asterisk with
>
> R-URI: 2135551212 at IP
> TO-URI: 2135551212 at IP
>
> And obviously opensip will not know who is "2135551212" because "2135551212"
> is NOT in the subscriber table.
>
> So here is my code
> if (is_method("INVITE")) {
>
> if (!lookup("location","m")){
> switch($rc)
> {
> case -1:
> if
> (!lookup("location","d","FRANK101")) {
> t_reply("404","Not Found");
> exit;
> }
> case -3:
> t_newtran();
> t_reply("404","Not Found");
> exit;
> case -2:
> sl_send_reply("405", "Method Not Allowed");
> exit;
> }
> }
>
> route(relay);
> }
>
> So with the code above, I:
>
> 1. lookup to see if the INVITE is a valid user in subscriber database
> 2. If not an valid user, which in this case it is because asterisk sent in
> an invite with "2135551212"
> 3. Thus I use the funcation call, lookup("location","d","FRANK101"), which
> "FRANK101" is a valid user in the "subscriber" table.
> 4. by calling the funcation call, lookup("location","d","FRANK101"), I am
> expecting that opensips will NOT TOUCH either the TO-URI NOR the R-URI. It
> will keep those the same as 2135551212 at IP, BUT now opensips will sent the
> INVTIE to FRANK101 BECAUES the "lookup" function call only change the
> IP/Port of the INVITE where it suppose to go?
>
> Is my assumption correct? Or will "lookup" function also change the R-URI
> and the TO-URI? If that is the case, then is useless.
>
> And if lookup is work the way I thought, then please tell me what is the
> exact syntax in reference to a user in the subscriber table?
>
> What is the AOR parameter for the lookup? Is it not simply as the username?
> Or do I need to put username at IP then what is the "@IP"? is the "@IP" the
> "domain" field in the subscriber table? Or is it what is in the location
> table? and if is in the location table, then do I take the entire "contact"
> field and stuff that in to the lookup AOR parameter?
>
> Thank you!
>
>
>
>
> --
> View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Get-IP-Port-of-registered-user-or-from-Location-table-tp7588494p7588540.html
> Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
More information about the Users
mailing list