|
@@ -26,6 +26,7 @@
|
|
#include "../../parser/parse_content.h"
|
|
#include "../../parser/parse_content.h"
|
|
#include "../../parser/parse_uri.h"
|
|
#include "../../parser/parse_uri.h"
|
|
#include "../../modules/usrloc/usrloc.h"
|
|
#include "../../modules/usrloc/usrloc.h"
|
|
|
|
+#include "../../lib/srutils/sruid.h"
|
|
#include <libxml/parser.h>
|
|
#include <libxml/parser.h>
|
|
#include "pua_reginfo.h"
|
|
#include "pua_reginfo.h"
|
|
|
|
|
|
@@ -62,7 +63,10 @@
|
|
#define RESULT_CONTACTS_FOUND 1
|
|
#define RESULT_CONTACTS_FOUND 1
|
|
#define RESULT_NO_CONTACTS 2
|
|
#define RESULT_NO_CONTACTS 2
|
|
|
|
|
|
-int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str callid, int cseq, int expires, int event, str contact_uri) {
|
|
|
|
|
|
+extern sruid_t _reginfo_sruid;
|
|
|
|
+
|
|
|
|
+int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str callid,
|
|
|
|
+ int cseq, int expires, int event, str contact_uri) {
|
|
str no_str = {0, 0};
|
|
str no_str = {0, 0};
|
|
static str no_ua = str_init("n/a");
|
|
static str no_ua = str_init("n/a");
|
|
static ucontact_info_t ci;
|
|
static ucontact_info_t ci;
|
|
@@ -102,6 +106,13 @@ int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str cal
|
|
/* set expire time */
|
|
/* set expire time */
|
|
ci.expires = time(0) + expires;
|
|
ci.expires = time(0) + expires;
|
|
|
|
|
|
|
|
+ /* set ruid */
|
|
|
|
+ if(sruid_next(&_reginfo_sruid) < 0) {
|
|
|
|
+ LM_ERR("failed to generate ruid");
|
|
|
|
+ } else {
|
|
|
|
+ ci.ruid = _reginfo_sruid.uid;
|
|
|
|
+ }
|
|
|
|
+
|
|
/* Now we start looking for the contact: */
|
|
/* Now we start looking for the contact: */
|
|
if (((*ul_record)->contacts == 0)
|
|
if (((*ul_record)->contacts == 0)
|
|
|| (ul.get_ucontact(*ul_record, &contact_uri, &callid, &no_str, cseq+1, &ul_contact) != 0)) {
|
|
|| (ul.get_ucontact(*ul_record, &contact_uri, &callid, &no_str, cseq+1, &ul_contact) != 0)) {
|