I tried it but it is sending the unregister message to the second register user.I want to send the message to previous. First user register: ok Second user register: register, and kamailio will send a message unregister to the first. First user: get unregister Message Sorry, maybe I'm not understanding something. Now is sending the message to contact.
El mié., 3 jun. 2020 a las 13:13, Ahmed Marsou (<[email protected]>) escribió: > Ok, thank you so much. > > El mié., 3 jun. 2020 a las 12:54, Daniel-Constantin Mierla (< > [email protected]>) escribió: > >> Hello, >> >> like Joel said, the reveiced filed in location record is set only for >> NATed contacts and in ipv6 likely it is not the case. >> >> What you should do is like: >> >> $uac_req(ruri) = $(ulc (existingContact=>addr)[0]); >> >> if($(ulc(existingContact=>received)[0]) != $null) { >> >> $uac_req(duri) = $(ulc(existingContact=>received)[0]); >> >> } >> >> Cheers, >> Daniel >> On 03.06.20 12:27, Ahmed Marsou wrote: >> >> Hi, thanks for your response. I appreciate the help, I really appreciate >> it. >> My problem is that I have to send a MESSAGE to an application to show the >> user a message. >> Like that: >> >> >> >> >> >> >> >> >> >> *$ var (address) = $ (ulc (existingContact => received) [0]); $ var >> (ruri) = $ (var (address) {s.substr, 4,0}); # Submit a SIP request stating >> the problem and its reason in the body $ uac_req (method) = "MESSAGE"; $ >> uac_req (ruri) = "sip:" + $ au + "@" + $ var (ruri); $ uac_req (furi) = >> "sip: kamailio @ sip_domain"; $ uac_req (turi) = $ fu; $ uac_req (hdrs) = >> "Max-Forwards: 70 \ r \ nEvent: reg \ r \ nContent-Type: text / plain \ r \ >> nAccept-Contact: *; + g.ext.app.registration \ r \ n" ; $ uac_req (body) = >> "Already registered with another device ID"; uac_req_send ();* >> >> For the previous user, I mean. The first record, not the second. How can >> I get the first source IP address to replace $ var (address) = $ (ulc >> (existingContact => received) [0]); and send him the message? If I use save >> (); module, I will have the same problem, because I will not be able to >> find the previous IP source. >> Thank you so much. >> Kind regards. >> >> El mié., 3 jun. 2020 5:43, Joel Serrano <[email protected]> escribió: >> >>> Not exactly an answer to your specific question, but it might help solve >>> your problem in a different way... >>> >>> If you using the registrar module with save()... you might be able to >>> take advantage in some way of the flags 0x04: >>> >>> >>> https://kamailio.org/docs/modules/5.3.x/modules/registrar.html#registrar.f.save >>> >>> >>> *"0x04 - store and maintain one contact per AoR. If there are other >>> contact addresses for AoR not matching current registration, remove them. >>> This mode ensures one contact per AoR (user)." * >>> >>> Regarding "received", I would think that you have it on IPV4 because the >>> UA is probably behind NAT, and you are adding it in config script, with >>> IPv6, there is no NAT, and --most likely-- you are not adding it, thus it's >>> not saved to the database. Check if you are using fix_nated_register() >>> somewhere in your config file.. For IPv6 it might be easier if you just >>> pull the IP from the Contact info. >>> >>> >>> Sorry if this isn't very helpful, I'm guessing a little based on the >>> info you provided :) >>> >>> Cheers, >>> Joel. >>> >>> >>> >>> On Tue, Jun 2, 2020 at 4:46 PM Ahmed Marsou <[email protected]> >>> wrote: >>> >>>> Hi; >>>> I'm using the received parameter to send a MESSAGE to unregsiter the >>>> first user that is registered to register the second one. >>>> Using: >>>> *modparam("usrloc", "received_column"* >>>> >>>> *modparam("registrar|nathelper", "received_avp", * >>>> >>>> and when I do a: >>>> select received from location; >>>> as you can see is null. >>>> +----------+ >>>> | received | >>>> +----------+ >>>> | NULL | >>>> +----------+ >>>> >>>> In IPV4 is working fine, but in IPV6 is not. Can you tell me how can I >>>> get this value? >>>> Im going crazy with that. >>>> >>>> reg_fetch_contacts("location", "$fu", >>>> "existingContact"); >>>> if( $(ulc(existingContact=>user_agent)[0]) =~ "SPI/v"){ >>>> $var(oldDeviceId) = >>>> $(ulc(existingContact=>callid)[0]{s.substr,9,0}); >>>> $var(newDeviceId) = >>>> $(hdr(Call-ID){s.substr,9,0}); >>>> if($var(oldDeviceId) != $var(newDeviceId) ){ >>>> xlog("L_INFO","New device id is >>>> different:warn previous user another user overide him"); >>>> $var(address) = $(ulc(existingContact=> >>>> *received*)[0]); >>>> $var(ruri) = >>>> $(var(address){s.substr,4,0}); >>>> #Send a SIP Request signalling the >>>> problem and its reason on the body >>>> $uac_req(method)="MESSAGE"; >>>> $uac_req(ruri) = "sip:"+ $au + "@" + >>>> $var(ruri); >>>> $uac_req(furi) = >>>> "sip:kamailio@sip_domain"; >>>> $uac_req(turi) = $fu; >>>> $uac_req(hdrs)="Max-Forwards: >>>> 70\r\nEvent: reg\r\nContent-Type: >>>> text/plain\r\nAccept-Contact:*;+g.ext.app.registration\r\n"; >>>> $uac_req(body)="Already registered with >>>> another device id"; >>>> uac_req_send(); >>>> drop; >>>> } >>>> } >>>> >>>> >>>> Thank you. >>>> >>>> >>>> _______________________________________________ >>>> Kamailio (SER) - Users Mailing List >>>> [email protected] >>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >>>> >>> _______________________________________________ >>> Kamailio (SER) - Users Mailing List >>> [email protected] >>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >>> >> >> _______________________________________________ >> Kamailio (SER) - Users Mailing >> [email protected]https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >> >> -- >> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- >> www.linkedin.com/in/miconda >> Funding: https://www.paypal.me/dcmierla >> >>
_______________________________________________ Kamailio (SER) - Users Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
