|
@@ -10,7 +10,7 @@ Daniel-Constantin Mierla
|
|
|
|
|
|
<[email protected]>
|
|
|
|
|
|
- Copyright © 2011 asipto.com
|
|
|
+ Copyright © 2011 asipto.com
|
|
|
__________________________________________________________________
|
|
|
|
|
|
Table of Contents
|
|
@@ -32,18 +32,19 @@ Daniel-Constantin Mierla
|
|
|
4.4. sdp_keep_codecs_by_id(list [, mtype])
|
|
|
4.5. sdp_keep_codecs_by_name(list [, mtype])
|
|
|
4.6. sdp_with_media(type)
|
|
|
- 4.7. sdp_remove_media(type)
|
|
|
- 4.8. sdp_with_transport(type)
|
|
|
- 4.9. sdp_with_transport_like(string)
|
|
|
- 4.10. sdp_transport(pv)
|
|
|
- 4.11. sdp_remove_transport(type)
|
|
|
- 4.12. sdp_with_codecs_by_id(list)
|
|
|
- 4.13. sdp_with_codecs_by_name(list)
|
|
|
- 4.14. sdp_print(level)
|
|
|
- 4.15. sdp_get(avpvar)
|
|
|
- 4.16. sdp_content()
|
|
|
- 4.17. sdp_with_ice()
|
|
|
- 4.18. sdp_get_line_startswith(avpvar, string)
|
|
|
+ 4.7. sdp_with_active_media(type)
|
|
|
+ 4.8. sdp_remove_media(type)
|
|
|
+ 4.9. sdp_with_transport(type)
|
|
|
+ 4.10. sdp_with_transport_like(string)
|
|
|
+ 4.11. sdp_transport(pv)
|
|
|
+ 4.12. sdp_remove_transport(type)
|
|
|
+ 4.13. sdp_with_codecs_by_id(list)
|
|
|
+ 4.14. sdp_with_codecs_by_name(list)
|
|
|
+ 4.15. sdp_print(level)
|
|
|
+ 4.16. sdp_get(avpvar)
|
|
|
+ 4.17. sdp_content()
|
|
|
+ 4.18. sdp_with_ice()
|
|
|
+ 4.19. sdp_get_line_startswith(avpvar, string)
|
|
|
|
|
|
List of Examples
|
|
|
|
|
@@ -53,18 +54,19 @@ Daniel-Constantin Mierla
|
|
|
1.4. sdp_keep_codecs_by_id usage
|
|
|
1.5. sdp_keep_codecs_by_name usage
|
|
|
1.6. sdp_with_media usage
|
|
|
- 1.7. sdp_remove_media usage
|
|
|
- 1.8. sdp_with_transport usage
|
|
|
- 1.9. sdp_with_transport_like usage
|
|
|
- 1.10. sdp_transport usage
|
|
|
- 1.11. sdp_remove_transport usage
|
|
|
- 1.12. sdp_with_codecs_by_id usage
|
|
|
- 1.13. sdp_with_codecs_by_name usage
|
|
|
- 1.14. sdp_print usage
|
|
|
- 1.15. sdp_get usage
|
|
|
- 1.16. sdp_content usage
|
|
|
- 1.17. sdp_with_ice usage
|
|
|
- 1.18. sdp_get_line_startswith usage
|
|
|
+ 1.7. sdp_with_active_media usage
|
|
|
+ 1.8. sdp_remove_media usage
|
|
|
+ 1.9. sdp_with_transport usage
|
|
|
+ 1.10. sdp_with_transport_like usage
|
|
|
+ 1.11. sdp_transport usage
|
|
|
+ 1.12. sdp_remove_transport usage
|
|
|
+ 1.13. sdp_with_codecs_by_id usage
|
|
|
+ 1.14. sdp_with_codecs_by_name usage
|
|
|
+ 1.15. sdp_print usage
|
|
|
+ 1.16. sdp_get usage
|
|
|
+ 1.17. sdp_content usage
|
|
|
+ 1.18. sdp_with_ice usage
|
|
|
+ 1.19. sdp_get_line_startswith usage
|
|
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
|
@@ -85,18 +87,19 @@ Chapter 1. Admin Guide
|
|
|
4.4. sdp_keep_codecs_by_id(list [, mtype])
|
|
|
4.5. sdp_keep_codecs_by_name(list [, mtype])
|
|
|
4.6. sdp_with_media(type)
|
|
|
- 4.7. sdp_remove_media(type)
|
|
|
- 4.8. sdp_with_transport(type)
|
|
|
- 4.9. sdp_with_transport_like(string)
|
|
|
- 4.10. sdp_transport(pv)
|
|
|
- 4.11. sdp_remove_transport(type)
|
|
|
- 4.12. sdp_with_codecs_by_id(list)
|
|
|
- 4.13. sdp_with_codecs_by_name(list)
|
|
|
- 4.14. sdp_print(level)
|
|
|
- 4.15. sdp_get(avpvar)
|
|
|
- 4.16. sdp_content()
|
|
|
- 4.17. sdp_with_ice()
|
|
|
- 4.18. sdp_get_line_startswith(avpvar, string)
|
|
|
+ 4.7. sdp_with_active_media(type)
|
|
|
+ 4.8. sdp_remove_media(type)
|
|
|
+ 4.9. sdp_with_transport(type)
|
|
|
+ 4.10. sdp_with_transport_like(string)
|
|
|
+ 4.11. sdp_transport(pv)
|
|
|
+ 4.12. sdp_remove_transport(type)
|
|
|
+ 4.13. sdp_with_codecs_by_id(list)
|
|
|
+ 4.14. sdp_with_codecs_by_name(list)
|
|
|
+ 4.15. sdp_print(level)
|
|
|
+ 4.16. sdp_get(avpvar)
|
|
|
+ 4.17. sdp_content()
|
|
|
+ 4.18. sdp_with_ice()
|
|
|
+ 4.19. sdp_get_line_startswith(avpvar, string)
|
|
|
|
|
|
1. Overview
|
|
|
|
|
@@ -126,7 +129,7 @@ Chapter 1. Admin Guide
|
|
|
|
|
|
3. Parameters
|
|
|
|
|
|
- The module does not export any config parameter yet.
|
|
|
+ The module does not export any config parameters yet.
|
|
|
|
|
|
4. Functions
|
|
|
|
|
@@ -136,20 +139,21 @@ Chapter 1. Admin Guide
|
|
|
4.4. sdp_keep_codecs_by_id(list [, mtype])
|
|
|
4.5. sdp_keep_codecs_by_name(list [, mtype])
|
|
|
4.6. sdp_with_media(type)
|
|
|
- 4.7. sdp_remove_media(type)
|
|
|
- 4.8. sdp_with_transport(type)
|
|
|
- 4.9. sdp_with_transport_like(string)
|
|
|
- 4.10. sdp_transport(pv)
|
|
|
- 4.11. sdp_remove_transport(type)
|
|
|
- 4.12. sdp_with_codecs_by_id(list)
|
|
|
- 4.13. sdp_with_codecs_by_name(list)
|
|
|
- 4.14. sdp_print(level)
|
|
|
- 4.15. sdp_get(avpvar)
|
|
|
- 4.16. sdp_content()
|
|
|
- 4.17. sdp_with_ice()
|
|
|
- 4.18. sdp_get_line_startswith(avpvar, string)
|
|
|
-
|
|
|
-4.1. sdp_remove_codecs_by_id(list)
|
|
|
+ 4.7. sdp_with_active_media(type)
|
|
|
+ 4.8. sdp_remove_media(type)
|
|
|
+ 4.9. sdp_with_transport(type)
|
|
|
+ 4.10. sdp_with_transport_like(string)
|
|
|
+ 4.11. sdp_transport(pv)
|
|
|
+ 4.12. sdp_remove_transport(type)
|
|
|
+ 4.13. sdp_with_codecs_by_id(list)
|
|
|
+ 4.14. sdp_with_codecs_by_name(list)
|
|
|
+ 4.15. sdp_print(level)
|
|
|
+ 4.16. sdp_get(avpvar)
|
|
|
+ 4.17. sdp_content()
|
|
|
+ 4.18. sdp_with_ice()
|
|
|
+ 4.19. sdp_get_line_startswith(avpvar, string)
|
|
|
+
|
|
|
+4.1. sdp_remove_codecs_by_id(list)
|
|
|
|
|
|
Remove the codecs provided in the parameter 'list' from all media
|
|
|
streams found in SDP payload. The parameter 'list' must be one item or
|
|
@@ -166,7 +170,7 @@ sdp_remove_codecs_by_id("0");
|
|
|
sdp_remove_codecs_by_id("0,8,3");
|
|
|
...
|
|
|
|
|
|
-4.2. sdp_remove_codecs_by_name(list)
|
|
|
+4.2. sdp_remove_codecs_by_name(list)
|
|
|
|
|
|
Remove the codecs provided in the parameter 'list' from all media
|
|
|
streams found in SDP payload. The parameter 'list' must be one item or
|
|
@@ -183,7 +187,7 @@ sdp_remove_codecs_by_name("PCMU");
|
|
|
sdp_remove_codecs_by_name("PCMU,PCMA,GSM");
|
|
|
...
|
|
|
|
|
|
-4.3. sdp_remove_line_by_prefix(string)
|
|
|
+4.3. sdp_remove_line_by_prefix(string)
|
|
|
|
|
|
Remove all SDP attribute lines beginning with 'string' in all media
|
|
|
streams.
|
|
@@ -202,7 +206,7 @@ if ($si == "2001:DB8::8:800:200C:417A"
|
|
|
|
|
|
...
|
|
|
|
|
|
-4.4. sdp_keep_codecs_by_id(list [, mtype])
|
|
|
+4.4. sdp_keep_codecs_by_id(list [, mtype])
|
|
|
|
|
|
Keep only the codecs provided in the parameter 'list' from all media
|
|
|
streams found in SDP payload. The parameter 'list' must be one item or
|
|
@@ -222,7 +226,7 @@ sdp_keep_codecs_by_id("0");
|
|
|
sdp_keep_codecs_by_id("0,8,3", "audio");
|
|
|
...
|
|
|
|
|
|
-4.5. sdp_keep_codecs_by_name(list [, mtype])
|
|
|
+4.5. sdp_keep_codecs_by_name(list [, mtype])
|
|
|
|
|
|
Keep only the codecs provided in the parameter 'list' from all media
|
|
|
streams found in SDP payload. The parameter 'list' must be one or a
|
|
@@ -245,7 +249,7 @@ sdp_keep_codecs_by_name("PCMU");
|
|
|
sdp_keep_codecs_by_name("PCMU,PCMA,GSM");
|
|
|
...
|
|
|
|
|
|
-4.6. sdp_with_media(type)
|
|
|
+4.6. sdp_with_media(type)
|
|
|
|
|
|
Return true of the SDP has 'media=type ...' line. Useful to check the
|
|
|
content of the RTP sessions, such as 'audio' or 'video'. The parameter
|
|
@@ -262,20 +266,39 @@ if(sdp_with_media("video"))
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.7. sdp_remove_media(type)
|
|
|
+4.7. sdp_with_active_media(type)
|
|
|
+
|
|
|
+ Return true of the SDP has 'media=type ...' line and the media is
|
|
|
+ active. Useful to check the content of the RTP sessions, such as
|
|
|
+ 'audio' or 'video'. Active media means the port is non-zero and the
|
|
|
+ direction is not "inactive" The parameter can be static string or
|
|
|
+ variable holding the media type.
|
|
|
+
|
|
|
+ This function can be used from ANY_ROUTE.
|
|
|
+
|
|
|
+ Example 1.7. sdp_with_active_media usage
|
|
|
+...
|
|
|
+# check for active video stream
|
|
|
+if(sdp_with_active_media("video"))
|
|
|
+{
|
|
|
+ # the session has an active video stream
|
|
|
+}
|
|
|
+...
|
|
|
+
|
|
|
+4.8. sdp_remove_media(type)
|
|
|
|
|
|
Remove the streams that match on 'm=type ...' line. The parameter can
|
|
|
be static string or variable holding the media type.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.7. sdp_remove_media usage
|
|
|
+ Example 1.8. sdp_remove_media usage
|
|
|
...
|
|
|
# remove video stream
|
|
|
sdp_remove_media("video");
|
|
|
...
|
|
|
|
|
|
-4.8. sdp_with_transport(type)
|
|
|
+4.9. sdp_with_transport(type)
|
|
|
|
|
|
Return true of the SDP has 'media=media port type ...' line. Useful to
|
|
|
check the transport of the RTP sessions, such as 'RTP/AVP', 'RTP/SAVP'
|
|
@@ -284,7 +307,7 @@ sdp_remove_media("video");
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.8. sdp_with_transport usage
|
|
|
+ Example 1.9. sdp_with_transport usage
|
|
|
...
|
|
|
# check for RTP/SAVP stream
|
|
|
if(sdp_with_transport("RTP/SAVP"))
|
|
@@ -293,7 +316,7 @@ if(sdp_with_transport("RTP/SAVP"))
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.9. sdp_with_transport_like(string)
|
|
|
+4.10. sdp_with_transport_like(string)
|
|
|
|
|
|
Returns true if the SDP has 'media=media port type ...' line, where
|
|
|
type contains string. The parameter can be static string or variable
|
|
@@ -301,7 +324,7 @@ if(sdp_with_transport("RTP/SAVP"))
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.9. sdp_with_transport_like usage
|
|
|
+ Example 1.10. sdp_with_transport_like usage
|
|
|
...
|
|
|
# check for SAVPF stream
|
|
|
if(sdp_with_transport_like("SAVPF"))
|
|
@@ -310,7 +333,7 @@ if(sdp_with_transport_like("SAVPF"))
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.10. sdp_transport(pv)
|
|
|
+4.11. sdp_transport(pv)
|
|
|
|
|
|
Assigns common media transport (if any) of 'm' lines to pv argument.
|
|
|
Returns 1 if common media transport was found, -2 if there was no
|
|
@@ -318,25 +341,25 @@ if(sdp_with_transport_like("SAVPF"))
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.10. sdp_transport usage
|
|
|
+ Example 1.11. sdp_transport usage
|
|
|
...
|
|
|
sdp_transport("$avp(caller_rtp_transport)");
|
|
|
...
|
|
|
|
|
|
-4.11. sdp_remove_transport(type)
|
|
|
+4.12. sdp_remove_transport(type)
|
|
|
|
|
|
Remove the streams that match on 'm=media port type ...' line. The
|
|
|
parameter can be static string or variable holding the transport type.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.11. sdp_remove_transport usage
|
|
|
+ Example 1.12. sdp_remove_transport usage
|
|
|
...
|
|
|
# remove stream with transport RTP/AVP
|
|
|
sdp_remove_transport("RTP/AVP");
|
|
|
...
|
|
|
|
|
|
-4.12. sdp_with_codecs_by_id(list)
|
|
|
+4.13. sdp_with_codecs_by_id(list)
|
|
|
|
|
|
Returns true if any of the codecs provided in the parameter 'list' from
|
|
|
all media streams is found in SDP payload. The parameter 'list' must be
|
|
@@ -345,7 +368,7 @@ sdp_remove_transport("RTP/AVP");
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.12. sdp_with_codecs_by_id usage
|
|
|
+ Example 1.13. sdp_with_codecs_by_id usage
|
|
|
...
|
|
|
# test for PCMU
|
|
|
if(sdp_with_codecs_by_id("0")) { ... }
|
|
@@ -353,7 +376,7 @@ if(sdp_with_codecs_by_id("0")) { ... }
|
|
|
if(sdp_with_codecs_by_id("0,8,3")) { ... }
|
|
|
...
|
|
|
|
|
|
-4.13. sdp_with_codecs_by_name(list)
|
|
|
+4.14. sdp_with_codecs_by_name(list)
|
|
|
|
|
|
Returns true if any of the codecs provided in the parameter 'list' from
|
|
|
all media streams is found in SDP payload. The parameter 'list' must be
|
|
@@ -362,7 +385,7 @@ if(sdp_with_codecs_by_id("0,8,3")) { ... }
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.13. sdp_with_codecs_by_name usage
|
|
|
+ Example 1.14. sdp_with_codecs_by_name usage
|
|
|
...
|
|
|
# test for PCMU
|
|
|
if(sdp_with_codecs_by_name("PCMU")) { ... }
|
|
@@ -370,59 +393,59 @@ if(sdp_with_codecs_by_name("PCMU")) { ... }
|
|
|
if(sdp_with_codecs_by_name("PCMU,PCMA,GSM")) { ... }
|
|
|
...
|
|
|
|
|
|
-4.14. sdp_print(level)
|
|
|
+4.15. sdp_print(level)
|
|
|
|
|
|
Print the SDP internal structure to log 'level'. The parameter can be
|
|
|
static integer or variable holding the integer value of the log level.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.14. sdp_print usage
|
|
|
+ Example 1.15. sdp_print usage
|
|
|
...
|
|
|
# print the SDP
|
|
|
sdp_print("1");
|
|
|
...
|
|
|
|
|
|
-4.15. sdp_get(avpvar)
|
|
|
+4.16. sdp_get(avpvar)
|
|
|
|
|
|
Store the SDP part of message body in an AVP. Return 1 if SDP is found,
|
|
|
-1 on error and -2 if there is no SDP part in the message body.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.15. sdp_get usage
|
|
|
+ Example 1.16. sdp_get usage
|
|
|
...
|
|
|
sdp_get("$avp(sdp)");
|
|
|
...
|
|
|
|
|
|
-4.16. sdp_content()
|
|
|
+4.17. sdp_content()
|
|
|
|
|
|
Return true if the SIP message has SDP body or a SDP part in body.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.16. sdp_content usage
|
|
|
+ Example 1.17. sdp_content usage
|
|
|
...
|
|
|
if(sdp_content()) {
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.17. sdp_with_ice()
|
|
|
+4.18. sdp_with_ice()
|
|
|
|
|
|
Return true if the SIP message has SDP body that contains ICE candidate
|
|
|
attribute(s).
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.17. sdp_with_ice usage
|
|
|
+ Example 1.18. sdp_with_ice usage
|
|
|
...
|
|
|
if(sdp_with_ice()) {
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.18. sdp_get_line_startswith(avpvar, string)
|
|
|
+4.19. sdp_get_line_startswith(avpvar, string)
|
|
|
|
|
|
Store the search part of SDP body message with line beginning with
|
|
|
'string' in an AVP. Return 1 if 'string' is found in SDP, -1 on error
|
|
@@ -430,7 +453,7 @@ if(sdp_with_ice()) {
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.18. sdp_get_line_startswith usage
|
|
|
+ Example 1.19. sdp_get_line_startswith usage
|
|
|
...
|
|
|
if(sdp_get_line_startswith("$avp(mline)", "m=")) {
|
|
|
xlog("m-line: $avp(mline)\n");
|