[sr-dev] git:master: msrp: new parameter use_path_addr

Daniel-Constantin Mierla miconda at gmail.com
Sun Jan 6 00:02:31 CET 2013


Module: sip-router
Branch: master
Commit: 830af85c45933b3cdc3c48152667162fcf969a55
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=830af85c45933b3cdc3c48152667162fcf969a55

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date:   Sat Jan  5 23:51:07 2013 +0100

msrp: new parameter use_path_addr

- specify host and port for usage in Use-Path header

---

 modules/msrp/README             |   55 ++++++++++++++++++++++++--------------
 modules/msrp/doc/msrp_admin.xml |   21 ++++++++++++++-
 modules/msrp/msrp_cmap.c        |    7 +++-
 modules/msrp/msrp_mod.c         |   12 +++++---
 4 files changed, 67 insertions(+), 28 deletions(-)

diff --git a/modules/msrp/README b/modules/msrp/README
index 7a50456..81e6a44 100644
--- a/modules/msrp/README
+++ b/modules/msrp/README
@@ -36,6 +36,7 @@ Alex Balashov
               3.3. timer_interval (int)
               3.4. auth_min_expires (int)
               3.5. auth_max_expires (int)
+              3.6. use_path_addr (str)
 
         4. Functions
 
@@ -64,16 +65,17 @@ Alex Balashov
    1.3. Set timer_interval parameter
    1.4. Set auth_min_expires parameter
    1.5. Set auth_max_expires parameter
-   1.6. msrp usage
-   1.7. msrp_reply usage
-   1.8. msrp_is_request usage
-   1.9. msrp_is_reply usage
-   1.10. msrp_set_dst usage
-   1.11. msrp_relay_flags usage
-   1.12. msrp_reply_flags usage
-   1.13. msrp_cmap_save usage
-   1.14. msrp_cmap_lookup usage
-   1.15. Event Route
+   1.6. Set use_path_addr parameter
+   1.7. msrp_relay usage
+   1.8. msrp_reply usage
+   1.9. msrp_is_request usage
+   1.10. msrp_is_reply usage
+   1.11. msrp_set_dst usage
+   1.12. msrp_relay_flags usage
+   1.13. msrp_reply_flags usage
+   1.14. msrp_cmap_save usage
+   1.15. msrp_cmap_lookup usage
+   1.16. Event Route
 
 Chapter 1. Admin Guide
 
@@ -92,6 +94,7 @@ Chapter 1. Admin Guide
         3.3. timer_interval (int)
         3.4. auth_min_expires (int)
         3.5. auth_max_expires (int)
+        3.6. use_path_addr (str)
 
    4. Functions
 
@@ -167,6 +170,7 @@ Chapter 1. Admin Guide
    3.3. timer_interval (int)
    3.4. auth_min_expires (int)
    3.5. auth_max_expires (int)
+   3.6. use_path_addr (str)
 
 3.1. sipmsg (int)
 
@@ -228,6 +232,17 @@ modparam("msrp", "auth_min_expiresl", 90)
 modparam("msrp", "auth_max_expiresl", 1800)
 ...
 
+3.6. use_path_addr (str)
+
+   The hostname:port to be used when building Use-Path header.
+
+   Default value is NULL (server IP and port are used).
+
+   Example 1.6. Set use_path_addr parameter
+...
+modparam("msrp", "use_path_addr", "msrp.kamailio.org:5061")
+...
+
 4. Functions
 
    4.1. msrp_relay()
@@ -249,7 +264,7 @@ modparam("msrp", "auth_max_expiresl", 1800)
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.6. msrp usage
+   Example 1.7. msrp_relay usage
 ...
 event_route[msrp:frame-in] {
     msrp_relay();
@@ -264,7 +279,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.7. msrp_reply usage
+   Example 1.8. msrp_reply usage
 ...
 event_route[msrp:frame-in] {
     msrp_reply("403", "Not allowed");
@@ -277,7 +292,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.8. msrp_is_request usage
+   Example 1.9. msrp_is_request usage
 ...
 event_route[msrp:frame-in] {
     if(msrp_is_request())
@@ -294,7 +309,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.9. msrp_is_reply usage
+   Example 1.10. msrp_is_reply usage
 ...
 event_route[msrp:frame-in] {
     if(msrp_is_reply())
@@ -314,7 +329,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.10. msrp_set_dst usage
+   Example 1.11. msrp_set_dst usage
 ...
 event_route[msrp:frame-in] {
     ...
@@ -333,7 +348,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.11. msrp_relay_flags usage
+   Example 1.12. msrp_relay_flags usage
 ...
 event_route[msrp:frame-in] {
     ...
@@ -352,7 +367,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.12. msrp_reply_flags usage
+   Example 1.13. msrp_reply_flags usage
 ...
 event_route[msrp:frame-in] {
     ...
@@ -368,7 +383,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.13. msrp_cmap_save usage
+   Example 1.14. msrp_cmap_save usage
 ...
 event_route[msrp:frame-in] {
     ...
@@ -383,7 +398,7 @@ event_route[msrp:frame-in] {
 
    This function can be used in ANY_ROUTE.
 
-   Example 1.14. msrp_cmap_lookup usage
+   Example 1.15. msrp_cmap_lookup usage
 ...
 event_route[msrp:frame-in] {
     ...
@@ -490,7 +505,7 @@ Content-Type: text/plain
    Next is an example of configuration file with the routing block for
    MSRP frames. In this config, the SIP traffic is rejected.
 
-   Example 1.15. Event Route
+   Example 1.16. Event Route
 ...
 
 #!KAMAILIO
diff --git a/modules/msrp/doc/msrp_admin.xml b/modules/msrp/doc/msrp_admin.xml
index 58621d3..271cd84 100644
--- a/modules/msrp/doc/msrp_admin.xml
+++ b/modules/msrp/doc/msrp_admin.xml
@@ -183,6 +183,25 @@ modparam("msrp", "auth_max_expiresl", 1800)
 </programlisting>
 		</example>
 	</section>
+	<section>
+		<title><varname>use_path_addr</varname> (str)</title>
+		<para>
+		The hostname:port to be used when building Use-Path header.
+		</para>
+		<para>
+		<emphasis>
+			Default value is NULL (server IP and port are used).
+		</emphasis>
+		</para>
+		<example>
+		<title>Set <varname>use_path_addr</varname> parameter</title>
+		<programlisting format="linespecific">
+...
+modparam("msrp", "use_path_addr", "msrp.kamailio.org:5061")
+...
+</programlisting>
+		</example>
+	</section>
 	</section>
 
 	<section>
@@ -202,7 +221,7 @@ modparam("msrp", "auth_max_expiresl", 1800)
 		This function can be used in ANY_ROUTE.
 		</para>
 		<example>
-		<title><function>msrp</function> usage</title>
+		<title><function>msrp_relay</function> usage</title>
 		<programlisting format="linespecific">
 ...
 event_route[msrp:frame-in] {
diff --git a/modules/msrp/msrp_cmap.c b/modules/msrp/msrp_cmap.c
index 887274e..23a216b 100644
--- a/modules/msrp/msrp_cmap.c
+++ b/modules/msrp/msrp_cmap.c
@@ -42,6 +42,7 @@ static sruid_t _msrp_sruid;
 
 extern int msrp_auth_min_expires;
 extern int msrp_auth_max_expires;
+extern str msrp_use_path_addr;
 
 /**
  *
@@ -298,13 +299,15 @@ int msrp_cmap_save(msrp_frame_t *mf)
 	{
 		srcaddr.len = snprintf(sbuf, MSRP_SBUF_SIZE,
 				"Use-Path: msrps://%.*s/%.*s;tcp\r\nExpires: %d\r\n",
-				srcsock.len-4, srcsock.s+4,
+				(msrp_use_path_addr.s)?msrp_use_path_addr.len:(srcsock.len-4),
+				(msrp_use_path_addr.s)?msrp_use_path_addr.s:(srcsock.s+4),
 				_msrp_sruid.uid.len, _msrp_sruid.uid.s,
 				expires);
 	} else {
 		srcaddr.len = snprintf(sbuf, MSRP_SBUF_SIZE,
 				"Use-Path: msrp://%.*s/%.*s;tcp\r\nExpires: %d\r\n",
-				srcsock.len-4, srcsock.s+4,
+				(msrp_use_path_addr.s)?msrp_use_path_addr.len:(srcsock.len-4),
+				(msrp_use_path_addr.s)?msrp_use_path_addr.s:(srcsock.s+4),
 				_msrp_sruid.uid.len, _msrp_sruid.uid.s,
 				expires);
 	}
diff --git a/modules/msrp/msrp_mod.c b/modules/msrp/msrp_mod.c
index 4ff4559..3204dfc 100644
--- a/modules/msrp/msrp_mod.c
+++ b/modules/msrp/msrp_mod.c
@@ -68,6 +68,7 @@ int msrp_cmap_size = 0;
 int msrp_auth_min_expires = 60;
 int msrp_auth_max_expires = 3600;
 int msrp_timer_interval = 60;
+str msrp_use_path_addr = { 0 };
 
 static int msrp_frame_received(void *data);
 sip_msg_t *msrp_fake_sipmsg(msrp_frame_t *mf);
@@ -111,11 +112,12 @@ static cmd_export_t cmds[]={
 };
 
 static param_export_t params[]={
-	{"sipmsg",            INT_PARAM,   &msrp_param_sipmsg},
-	{"cmap_size",         INT_PARAM,   &msrp_cmap_size},
-	{"auth_min_expires",  INT_PARAM,   &msrp_auth_min_expires},
-	{"auth_max_expires",  INT_PARAM,   &msrp_auth_max_expires},
-	{"timer_interval",    INT_PARAM,   &msrp_timer_interval},
+	{"sipmsg",            PARAM_INT,   &msrp_param_sipmsg},
+	{"cmap_size",         PARAM_INT,   &msrp_cmap_size},
+	{"auth_min_expires",  PARAM_INT,   &msrp_auth_min_expires},
+	{"auth_max_expires",  PARAM_INT,   &msrp_auth_max_expires},
+	{"timer_interval",    PARAM_INT,   &msrp_timer_interval},
+	{"use_path_addr",     PARAM_STR,   &msrp_use_path_addr},
 	{0, 0, 0}
 };
 




More information about the sr-dev mailing list