[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