Module: sip-router Branch: master Commit: 830af85c45933b3cdc3c48152667162fcf969a55 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=830af85c...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@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} };