Hello! I have a problem with second registration of primary BLA number (From: and To: fields are the same, but appearance belongs to BLA group). OpenSER sends SUBSCRIBE request (dialog;sla) to registering user. Everything is all right after first registration. But OpenSER starts to send SUBSCRIBE request to itself after the second register. This problem appears since 1.3.2 version.
For the first register (UL_CONTACT_INSERT) we go to the "insert:" label in pua:send_subscribe:send_subscribe() function invoked from pua_bla:bla_cb(). Then subs->remote_target is used for SUBSCRIBE request URI (it's contact field from REGISTER request) via tmb.t_request() invocation. For the second register (UL_CONTACT_UPDATE) dialog is built via pua:send_subscribe:pua_build_dlg_t() and cache data. presentity->pres_uri is used for SUBSCRIBE request URI in this case. But presentity->pres_uri has domain-name which equals to server address (from 1.3.2 version presentity uri is assigned by reg_from_uri variable in pua_bla:registrar_cb:bla_cb() function). The same problem appears when user replies 481 (Call Leg/Transaction Does Not Exist) on SUBSCRIBE request. pua:send_subscribe:subs_cback_func() also uses presentity->pres_uri in this case. Probably the reason is wrong (or insufficient) cache data used for SUBSCRIBE request URI. subs_info_t->remote_target field was added in 1.3.2. It contains information about SUBSCRIBE request URI, but there is no information about SUBSCRIBE request URI in cache (ua_pres_t) structure. Should remote_target field be added into ua_pres_t? Attached cfg file is derived from BLA sample (http://www.openser.org/dokuwiki/doku.php/presence:pua_bla) Assumed that all registering numbers belong to BLA set. Only register requests are handled. Thanks, Marat
openser.cfg
Description: Binary data
_______________________________________________ Devel mailing list Devel@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/devel