[sr-dev] git:master:a0436852: mediaproxy: export functions to kemi framework

Daniel-Constantin Mierla miconda at gmail.com
Wed Dec 6 15:53:36 CET 2017


Module: kamailio
Branch: master
Commit: a04368528a3350a14038101a4bf17b4b742e362d
URL: https://github.com/kamailio/kamailio/commit/a04368528a3350a14038101a4bf17b4b742e362d

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2017-12-06T12:31:28+01:00

mediaproxy: export functions to kemi framework

---

Modified: src/modules/mediaproxy/mediaproxy.c

---

Diff:  https://github.com/kamailio/kamailio/commit/a04368528a3350a14038101a4bf17b4b742e362d.diff
Patch: https://github.com/kamailio/kamailio/commit/a04368528a3350a14038101a4bf17b4b742e362d.patch

---

diff --git a/src/modules/mediaproxy/mediaproxy.c b/src/modules/mediaproxy/mediaproxy.c
index 7250638d76..9caa0f8c64 100644
--- a/src/modules/mediaproxy/mediaproxy.c
+++ b/src/modules/mediaproxy/mediaproxy.c
@@ -48,6 +48,7 @@
 #include "../../core/msg_translator.h"
 #include "../../modules/dialog/dlg_load.h"
 #include "../../modules/dialog/dlg_hash.h"
+#include "../../core/kemi.h"
 
 
 MODULE_VERSION
@@ -173,8 +174,11 @@ typedef struct ice_candidate_data
 
 // Function prototypes
 //
+static int w_EngageMediaProxy(struct sip_msg *msg, char *p1, char *p2);
 static int EngageMediaProxy(struct sip_msg *msg);
+static int w_UseMediaProxy(struct sip_msg *msg, char *p1, char *p2);
 static int UseMediaProxy(struct sip_msg *msg);
+static int w_EndMediaSession(struct sip_msg *msg, char *p1, char *p2);
 static int EndMediaSession(struct sip_msg *msg);
 
 static int mod_init(void);
@@ -209,14 +213,12 @@ static AVP_Param media_relay_avp = {str_init(MEDIA_RELAY_AVP_SPEC), {0}, 0};
 static AVP_Param ice_candidate_avp = {str_init(ICE_CANDIDATE_AVP_SPEC), {0}, 0};
 
 static cmd_export_t commands[] = {
-		{"engage_media_proxy", (cmd_function)EngageMediaProxy, 0, 0, 0,
-				REQUEST_ROUTE},
-		{"use_media_proxy", (cmd_function)UseMediaProxy, 0, 0, 0,
-				REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE
-						| LOCAL_ROUTE},
-		{"end_media_session", (cmd_function)EndMediaSession, 0, 0, 0,
-				REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE
-						| LOCAL_ROUTE},
+		{"engage_media_proxy", (cmd_function)w_EngageMediaProxy, 0, 0, 0,
+				REQUEST_ROUTE | BRANCH_ROUTE},
+		{"use_media_proxy", (cmd_function)w_UseMediaProxy, 0, 0, 0,
+				ANY_ROUTE},
+		{"end_media_session", (cmd_function)w_EndMediaSession, 0, 0, 0,
+				ANY_ROUTE},
 		{0, 0, 0, 0, 0, 0}};
 
 static param_export_t parameters[] = {
@@ -2016,6 +2018,10 @@ static int EngageMediaProxy(struct sip_msg *msg)
 	return 1;
 }
 
+static int w_EngageMediaProxy(struct sip_msg *msg, char *p1, char *p2)
+{
+	return EngageMediaProxy(msg);
+}
 
 static int UseMediaProxy(struct sip_msg *msg)
 {
@@ -2025,6 +2031,10 @@ static int UseMediaProxy(struct sip_msg *msg)
 	return use_media_proxy(msg, "", NULL);
 }
 
+static int w_UseMediaProxy(struct sip_msg *msg, char *p1, char *p2)
+{
+	return UseMediaProxy(msg);
+}
 
 static int EndMediaSession(struct sip_msg *msg)
 {
@@ -2044,6 +2054,10 @@ static int EndMediaSession(struct sip_msg *msg)
 	return end_media_session(callid, from_tag, to_tag);
 }
 
+static int w_EndMediaSession(struct sip_msg *msg, char *p1, char *p2)
+{
+	return EndMediaSession(msg);
+}
 
 //
 // Module management: initialization/destroy/function-parameter-fixing/...
@@ -2173,3 +2187,34 @@ static int child_init(int rank)
 
 	return 0;
 }
+
+/**
+ *
+ */
+/* clang-format off */
+static sr_kemi_t sr_kemi_mediaproxy_exports[] = {
+	{ str_init("mediaproxy"), str_init("engage_media_proxy"),
+		SR_KEMIP_INT, EngageMediaProxy,
+		{ SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("mediaproxy"), str_init("use_media_proxy"),
+		SR_KEMIP_INT, UseMediaProxy,
+		{ SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("mediaproxy"), str_init("end_media_session"),
+		SR_KEMIP_INT, EndMediaSession,
+		{ SR_KEMIP_NONE, SR_KEMIP_NONE, 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_mediaproxy_exports);
+	return 0;
+}
\ No newline at end of file




More information about the sr-dev mailing list