Преглед изворни кода

Kamailio compatiblity: Function get_diversion_param

Jan Janak пре 16 година
родитељ
комит
c4669d846c
2 измењених фајлова са 31 додато и 0 уклоњено
  1. 26 0
      parser/parse_diversion.c
  2. 5 0
      parser/parse_diversion.h

+ 26 - 0
parser/parse_diversion.c

@@ -76,3 +76,29 @@ int parse_diversion_header(struct sip_msg *msg)
  error:
  	return -1;
 }
+
+
+/**
+ * Get the value of a given diversion parameter
+ */
+str *get_diversion_param(struct sip_msg *msg, str* name)
+{
+    struct to_param *params;
+
+    if (parse_diversion_header(msg) < 0) {
+		ERR("could not get diversion parameter\n");
+		return 0;
+    }
+
+    params =  ((struct to_body*)(msg->diversion->parsed))->param_lst;
+
+    while (params) {
+		if ((params->name.len == name->len) &&
+			(strncmp(params->name.s, name->s, name->len) == 0)) {
+			return &params->value;
+		}
+		params = params->next;
+    }
+	
+    return 0;
+}

+ 5 - 0
parser/parse_diversion.h

@@ -40,4 +40,9 @@
  */
 int parse_diversion_header(struct sip_msg *msg);
  
+/**
+ * Get the value of a given diversion parameter
+ */
+str *get_diversion_param(struct sip_msg *msg, str* name);
+
 #endif /* PARSE_DIVERSION_H */