浏览代码

sdpops: added $sdp(m0:raw) - get all lines of the first m= stream

Daniel-Constantin Mierla 1 年之前
父节点
当前提交
3e73dbc6b6
共有 1 个文件被更改,包括 21 次插入0 次删除
  1. 21 0
      src/modules/sdpops/sdpops_mod.c

+ 21 - 0
src/modules/sdpops/sdpops_mod.c

@@ -2201,6 +2201,21 @@ static int pv_get_sdp(sip_msg_t *msg, pv_param_t *param, pv_value_t *res)
 					}
 				}
 			}
+		case 7:
+			/* m0:raw - all (raw) lines for m0 stream */
+			if(sdp->sessions == NULL) {
+				return pv_get_null(msg, param, res);
+			}
+			if(sdp->sessions->streams == NULL) {
+				return pv_get_null(msg, param, res);
+			}
+			if(sdp->sessions->streams->raw_stream.s != NULL
+					&& sdp->sessions->streams->raw_stream.len > 0) {
+				return pv_get_strval(
+						msg, param, res, &sdp->sessions->streams->raw_stream);
+			}
+			return pv_get_null(msg, param, res);
+			break;
 
 		default:
 			return pv_get_null(msg, param, res);
@@ -2256,6 +2271,12 @@ static int pv_parse_sdp_name(pv_spec_p sp, str *in)
 			else
 				goto error;
 			break;
+		case 6:
+			if(strncmp(in->s, "m0:raw", 6) == 0)
+				sp->pvp.pvn.u.isname.name.n = 7;
+			else
+				goto error;
+			break;
 		case 11:
 			if(strncmp(in->s, "m0:rtp:port", 11) == 0)
 				sp->pvp.pvn.u.isname.name.n = 4;