Explorar el Código

pv: new var $mts - return msg type as string

- rq - for request
- rp - for response
Daniel-Constantin Mierla hace 5 años
padre
commit
52f9c668d7
Se han modificado 3 ficheros con 23 adiciones y 0 borrados
  1. 3 0
      src/modules/pv/pv.c
  2. 17 0
      src/modules/pv/pv_core.c
  3. 3 0
      src/modules/pv/pv_core.h

+ 3 - 0
src/modules/pv/pv.c

@@ -293,6 +293,9 @@ static pv_export_t mod_pvs[] = {
 	{{"mt", (sizeof("mt")-1)}, /* */
 		PVT_OTHER, pv_get_msgtype, 0,
 		0, 0, 0, 0},
+	{{"mts", (sizeof("mts")-1)}, /* */
+		PVT_OTHER, pv_get_msgtypes, 0,
+		0, 0, 0, 0},
 	{{"od", (sizeof("od")-1)}, /* */
 		PVT_OTHER, pv_get_ouri_attr, 0,
 		0, 0, pv_init_iname, 2},

+ 17 - 0
src/modules/pv/pv_core.c

@@ -195,6 +195,23 @@ int pv_get_msgtype(struct sip_msg *msg, pv_param_t *param,
 	return pv_get_uintval(msg, param, res, type);
 }
 
+int pv_get_msgtypes(struct sip_msg *msg, pv_param_t *param,
+		pv_value_t *res)
+{
+	char *types = "xx";
+
+	if(msg==NULL)
+		return -1;
+
+	if(msg->first_line.type == SIP_REQUEST) {
+		types = "rq";
+	} else if(msg->first_line.type == SIP_REPLY) {
+		types = "rp";
+	}
+
+	return pv_get_strzval(msg, param, res, types);
+}
+
 int pv_get_version(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res)
 {

+ 3 - 0
src/modules/pv/pv_core.h

@@ -49,6 +49,9 @@ int pv_get_methodid(struct sip_msg *msg, pv_param_t *param,
 int pv_get_msgtype(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res);
 
+int pv_get_msgtypes(struct sip_msg *msg, pv_param_t *param,
+		pv_value_t *res);
+
 int pv_get_status(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res);