浏览代码

path: exported functions to kemi interface

Daniel-Constantin Mierla 8 年之前
父节点
当前提交
17be61ed40
共有 3 个文件被更改,包括 113 次插入1 次删除
  1. 54 1
      src/modules/path/path.c
  2. 10 0
      src/modules/path/path.h
  3. 49 0
      src/modules/path/path_mod.c

+ 54 - 1
src/modules/path/path.c

@@ -151,7 +151,7 @@ out1:
 /*! \brief
  * Prepend own uri to Path header
  */
-int add_path(struct sip_msg* _msg, char* _a, char* _b)
+int ki_add_path(struct sip_msg* _msg)
 {
 	str user = {0,0};
 	int ret;
@@ -179,6 +179,11 @@ int add_path(struct sip_msg* _msg, char* _a, char* _b)
 	return ret;
 }
 
+int add_path(sip_msg_t* _msg, char* _a, char* _b)
+{
+	return ki_add_path(_msg);
+}
+
 /*! \brief
  * Prepend own uri to Path header and take care of given
  * user.
@@ -196,6 +201,25 @@ int add_path_usr(struct sip_msg* _msg, char* _usr, char* _parms)
 	return prepend_path(_msg, &user, PATH_PARAM_NONE, &parms);
 }
 
+/*! \brief
+ * Prepend own uri to Path header and take care of given
+ * user.
+ */
+int ki_add_path_user(sip_msg_t* _msg, str* _user)
+{
+	str parms = {0,0};
+	return prepend_path(_msg, _user, PATH_PARAM_NONE, &parms);
+}
+
+/*! \brief
+ * Prepend own uri to Path header and take care of given
+ * user.
+ */
+int ki_add_path_user_params(sip_msg_t* _msg, str* _user, str* _params)
+{
+	return prepend_path(_msg, _user, PATH_PARAM_NONE, _params);
+}
+
 /*! \brief
  * Prepend own uri to Path header and append received address as
  * "received"-param to that uri.
@@ -205,6 +229,15 @@ int add_path_received(struct sip_msg* _msg, char* _a, char* _b)
 	return prepend_path(_msg, NULL, PATH_PARAM_RECEIVED, NULL);
 }
 
+/*! \brief
+ * Prepend own uri to Path header and append received address as
+ * "received"-param to that uri.
+ */
+int ki_add_path_received(sip_msg_t* _msg)
+{
+	return prepend_path(_msg, NULL, PATH_PARAM_RECEIVED, NULL);
+}
+
 /*! \brief
  * Prepend own uri to Path header and append received address as
  * "received"-param to that uri and take care of given user.
@@ -222,6 +255,26 @@ int add_path_received_usr(struct sip_msg* _msg, char* _usr, char* _parms)
 	return prepend_path(_msg, &user, PATH_PARAM_RECEIVED, &parms);
 }
 
+/*! \brief
+ * Prepend own uri to Path header and append received address as
+ * "received"-param to that uri and take care of given user.
+ */
+int ki_add_path_received_user(sip_msg_t* _msg, str* _user)
+{
+	str parms = {0,0};
+	return prepend_path(_msg, _user, PATH_PARAM_RECEIVED, &parms);
+}
+
+/*! \brief
+ * Prepend own uri to Path header and append received address as
+ * "received"-param to that uri and take care of given user.
+ */
+int ki_add_path_received_user_params(sip_msg_t* _msg, str* _user, str* _params)
+{
+
+	return prepend_path(_msg, _user, PATH_PARAM_RECEIVED, _params);
+}
+
 /*! \brief
  * rr callback
  */

+ 10 - 0
src/modules/path/path.h

@@ -42,24 +42,34 @@
  */
 int add_path(struct sip_msg* _msg, char* _a, char* _b);
 
+int ki_add_path(struct sip_msg* _msg);
+
 /*
  * Prepend own uri to Path header and take care of given
  * user.
  */
 int add_path_usr(struct sip_msg* _msg, char* _a, char* _b);
 
+int ki_add_path_user(sip_msg_t* _msg, str* _user);
+int ki_add_path_user_params(sip_msg_t* _msg, str* _user, str* _params);
+
 /*
  * Prepend own uri to Path header and append received address as
  * "received"-param to that uri.
  */
 int add_path_received(struct sip_msg* _msg, char* _a, char* _b);
 
+int ki_add_path_received(struct sip_msg* _msg);
+
 /*
  * Prepend own uri to Path header and append received address as
  * "received"-param to that uri and take care of given user.
  */
 int add_path_received_usr(struct sip_msg* _msg, char* _a, char* _b);
 
+int ki_add_path_received_user(sip_msg_t* _msg, str* _user);
+int ki_add_path_received_user_params(sip_msg_t* _msg, str* _user, str* _params);
+
 /*
  * rr callback for setting dst-uri
  */

+ 49 - 0
src/modules/path/path_mod.c

@@ -52,6 +52,7 @@
 #include "../../core/sr_module.h"
 #include "../../core/mem/mem.h"
 #include "../../core/mod_fix.h"
+#include "../../core/kemi.h"
 #include "../outbound/api.h"
 #include "../rr/api.h"
 
@@ -150,3 +151,51 @@ static int mod_init(void)
 	
 	return 0;
 }
+
+/**
+ *
+ */
+/* clang-format off */
+static sr_kemi_t sr_kemi_path_exports[] = {
+	{ str_init("path"), str_init("add_path"),
+		SR_KEMIP_INT, ki_add_path,
+		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("path"), str_init("add_path_user"),
+		SR_KEMIP_INT, ki_add_path_user,
+		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("path"), str_init("add_path_user_params"),
+		SR_KEMIP_INT, ki_add_path_user_params,
+		{ SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("path"), str_init("add_path_received"),
+		SR_KEMIP_INT, ki_add_path_received,
+		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("path"), str_init("add_path_received_user"),
+		SR_KEMIP_INT, ki_add_path_received_user,
+		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("path"), str_init("add_path_received_user_params"),
+		SR_KEMIP_INT, ki_add_path_received_user_params,
+		{ SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } }
+};
+/* clang-format on */
+
+/**
+ *
+ */
+int mod_register(char *path, int *dlflags, void *p1, void *p2)
+{
+	sr_kemi_modules_add(sr_kemi_path_exports);
+	return 0;
+}