Hi,
We observe that the following kamailio API is trying to find out user
registration by comparing source IP and port with stored contact, if it
fails, then it compares based on incoming SIP msg contact uri.
is_registered(struct sip_msg* _m, udomain_t* _d){
getContactP(_m,_d);
}
pcontact_t * getContactP(struct sip_msg* _m, udomain_t* _d) {);
//Getting pcontact from source
IP and port
if (ul.get_pcontact_by_src(_d,
&received_host, _m->rcv.src_port, _m->rcv.proto, &c) == 1) {
LM_DBG("No
entry in usrloc for %.*s:%i (Proto %i) found!\n", received_host.len,
received_host.s, _m->rcv.src_port, _m->rcv.proto);
}
if (c == NULL) {
//Getting pcontact from
contact uri.
if (ul.get_pcontact(_d, &ct->uri, &c) == 0) {
}
}
We have use case where INVITE message is from same source IP and port but
having unregistered contact.With this scenario,is_registered() will return
success.
We would like to know reason behind comparing the source IP and port to
fetch the pcontact?
Regards,
Prashant