Переглянути джерело

modules_k/registrar: Exported save_uri

- Feature added by Hugh Waite @ Crocodile RCS Ltd
Peter Dunkley 13 роки тому
батько
коміт
b4f3aea40c
2 змінених файлів з 26 додано та 5 видалено
  1. 19 2
      modules_k/registrar/api.c
  2. 7 3
      modules_k/registrar/api.h

+ 19 - 2
modules_k/registrar/api.c

@@ -48,6 +48,21 @@ int regapi_save(struct sip_msg *msg, char *table, int flags)
 	return save(msg, d, flags, NULL);
 }
 
+/**
+ *
+ */
+int regapi_save_uri(struct sip_msg *msg, char *table, int flags, str *uri)
+{
+	udomain_t* d;
+
+	if(ul.get_udomain(table, &d)<0)
+	{
+		LM_ERR("usrloc domain [%s] not found\n", table);
+		return -1;
+	}
+	return save(msg, d, flags, uri);
+}
+
 /**
  *
  */
@@ -87,8 +102,10 @@ int bind_registrar(registrar_api_t* api)
 		ERR("Invalid parameter value\n");
 		return -1;
 	}
-	api->save   = regapi_save;
-	api->lookup = regapi_lookup;
+	api->save       = regapi_save;
+	api->save_uri   = regapi_save_uri;
+	api->lookup     = regapi_lookup;
+	api->registered = regapi_registered;
 	api->registered = regapi_registered;
 
 	return 0;

+ 7 - 3
modules_k/registrar/api.h

@@ -34,6 +34,9 @@
 typedef int (*regapi_save_f)(struct sip_msg *msg, char *table, int flags);
 int regapi_save(struct sip_msg *msg, char *table, int flags);
 
+typedef int (*regapi_save_uri_f)(struct sip_msg *msg, char *table, int flags, str *uri);
+int regapi_save_uri(struct sip_msg *msg, char *table, int flags, str *uri);
+
 typedef int (*regapi_lookup_f)(struct sip_msg *msg, char *table);
 int regapi_lookup(struct sip_msg *msg, char *table);
 
@@ -41,9 +44,10 @@ int regapi_lookup(struct sip_msg *msg, char *table);
  * @brief REGISTRAR API structure
  */
 typedef struct registrar_api {
-	regapi_save_f    save;
-	regapi_lookup_f  lookup;
-	regapi_lookup_f  registered;
+	regapi_save_f       save;
+	regapi_save_uri_f   save_uri;
+	regapi_lookup_f     lookup;
+	regapi_lookup_f     registered;
 } registrar_api_t;
 
 typedef int (*bind_registrar_f)(registrar_api_t* api);