Hello all! After some time I was able to get this working here, and now I am coming back to share my configuration with you guys (in case someone needs to get this working).
Here is what we have done: route[REGISTRAR] { if (is_method("REGISTER")) { if(isflagset(FLT_NATS)) { setbflag(FLB_NATB); # uncomment next line to do SIP NAT pinging ## setbflag(FLB_NATSIPPING); } xlog("L_INFO", "checking $tu registered with User-Agent:$hdr(User-Agent)\n"); if(reg_fetch_contacts("location", "$tu", "caller")) { xlog("L_INFO", "$(ulc(caller=>count)) records found for $tu\n"); $var(i) = 0; while($var(i) < $(ulc(caller=>count))) { xlog("L_INFO", "record $var(i) with ruid:$(ulc(caller=>ruid)[$var(i)]) - User-Agent:$(ulc(caller=>user_agent)[$var(i)])"); if ($hdr(User-Agent)=~$(ulc(caller=>user_agent)[$var(i)])) { $var(ruid) = $(ulc(caller=>ruid)[$var(i)]); xlog("L_INFO", "unregistering $tu ruid:$var(ruid)"); unregister("location", "$tu", "$var(ruid)"); } $var(i) = $var(i) + 1; } } if (!save("location", "0x00")) sl_reply_error(); exit; } } There are some logs over there because we used it to see what was going on while testing the configurations. With this we can get just one register per User-Agent. And again, thanks Olle for your help in this problem *Bruno Emer* Mobile: +55 11 96540-0044 email: brunoe...@gmail.com <https://www.facebook.com/bruno.emer.5> <https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic> <https://twitter.com/brunoemer_> <https://www.flickr.com/photos/122070309@N03/> <http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_> 2016-04-01 17:37 GMT-03:00 Bruno Emer <brunoe...@gmail.com>: > Sure it is! > > This is exactly what I was looking for! Actually I wasn't able to see that > there was a way to perform this action! > > Thanks for your help, Olle! > > I will try to create this, and when I have it done, I will post my script > here, so if someone else need the same problem I can help. > > Now, I have just one more question about my scenario: when I register a > user, is there a way to create something like a "custom field" on the > location? To explain better: If possible, I can add something like a custom > header that says if the user is registered from a phone device or the web > interface, then I can perform the loop and replace only the oldest contact > using that device... > > > > *Bruno Emer* > > Mobile: +55 11 96540-0044 > email: brunoe...@gmail.com > > 2016-04-01 17:18 GMT-03:00 Bruno Emer <brunoe...@gmail.com>: > >> This is my problem... I want to have 2 contacts for AOR, and not only >> one. >> >> When the 3rd arrives, it must remove the oldest and continue with 2... >> >> *If I am using the 0x04 parameter, it will save just one contact, and the >> user will not be able to get the Invite both, in the mobile device and web >> interface.* >> >> *Bruno Emer* >> >> Mobile: +55 11 96540-0044 >> email: brunoe...@gmail.com >> <https://www.facebook.com/bruno.emer.5> >> <https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic> >> <https://twitter.com/brunoemer_> >> <https://www.flickr.com/photos/122070309@N03/> >> <http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_> >> >> 2016-04-01 17:07 GMT-03:00 Bruno Emer <brunoe...@gmail.com>: >> >>> Hello, *Olle!* >>> >>> *Thanks for your help in this case, and don't worry about the time >>> (actually I wasn't even expecting to get an answer today).* >>> >>> >>> *I know the max_contacts parameter. But the problem is that if I set the >>> max_contacts to 2, when the user tries to register again, he gets an error >>> message 503. The point is that I want to get the user registered, and >>> replace the oldest location entry for the newest one.* >>> >>> >>> >>> *Bruno Emer* >>> >>> Mobile: +55 11 96540-0044 >>> email: brunoe...@gmail.com >>> >>> 2016-04-01 16:31 GMT-03:00 Bruno Emer <brunoe...@gmail.com>: >>> >>>> Hello all. >>>> >>>> I have problem here and I tried to find a solution and search over >>>> internet, but without success. >>>> >>>> My scenario is the following: I have an application that must be >>>> registered in Kamailio when a user logs in the web interface, so he can get >>>> calls (something like a web softphone using webrtc). At this point, we are >>>> OK, and everything is working fine. >>>> >>>> To get these register functions I am using the parameter >>>> "save("location", "0x04")" as described in the REGISTRAR module >>>> documentation, so if a user logs in another web browser or computer, only >>>> the last one will continue registered and all calls will be forwarded to >>>> him. >>>> >>>> The point is that now we are creating a phone app that will do almost >>>> the same thing as the web interface, allowing users to receive calls using >>>> the mobile device, and here is my problem: I want to allow my users to be >>>> registered on two devices at the same time, but if a user logs into another >>>> device, I don't want to reply with a 503. I want to allow the user to >>>> register again, deregistering the oldest contact. >>>> >>>> I saw that there is a module named "ims_usrloc_scscf" and on its >>>> description it says "implemented overwrite oldest contact behaviour", >>>> but I couldn't find any documentation about it. >>>> >>>> So, is there a way to get this working today? >>>> >>>> >>>> *Bruno Emer* >>>> >>>> Mobile: +55 11 96540-0044 >>>> email: brunoe...@gmail.com >>>> >>> >>> >> >
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users