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

Author: Stefan Sayer <[email protected]>
Committer: Stefan Sayer <[email protected]>
Date:   Fri Jan  7 15:56:22 2011 +0100

sbc: add $si/$sp and $Ri/Rp source/rcvd IP/port

- adds replacements for source/received IP/port

---

 apps/sbc/ParamReplacer.cpp |   36 +++++++++++++++++++++++++++++++++++-
 doc/Readme.sbc.txt         |    6 ++++++
 2 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/apps/sbc/ParamReplacer.cpp b/apps/sbc/ParamReplacer.cpp
index 3ca137d..74ff77f 100644
--- a/apps/sbc/ParamReplacer.cpp
+++ b/apps/sbc/ParamReplacer.cpp
@@ -133,7 +133,41 @@ string replaceParameters(const string& s,
          break;
        }
        WARN("unknown replacement $c%c\n", s[p+1]);
-      }
+      }; break;
+
+      case 's': { // source (remote)
+       if (s.length() < p+1) {
+         WARN("unknown replacement $s\n");
+         break;
+       }
+
+       if (s[p+1] == 'i') { // $si source IP address
+         res += req.remote_ip.c_str();
+         break;
+       } else if (s[p+1] == 'p') { // $sp source port
+         res += int2str(req.remote_port);
+         break;
+       }
+
+       WARN("unknown replacement $s%c\n", s[p+1]);
+      }; break;
+
+      case 'R': { // received (local)
+       if (s.length() < p+1) {
+         WARN("unknown replacement $R\n");
+         break;
+       }
+
+       if (s[p+1] == 'i') { // $si source IP address
+         res += req.local_ip.c_str();
+         break;
+       } else if (s[p+1] == 'p') { // $sp source port
+         res += int2str(req.local_port);
+         break;
+       }
+       WARN("unknown replacement $R%c\n", s[p+1]);
+      }; break;
+
 
 #define case_HDR(pv_char, pv_name, hdr_name)                           \
        case pv_char: {                                                 \
diff --git a/doc/Readme.sbc.txt b/doc/Readme.sbc.txt
index e3e9e4f..765a36b 100644
--- a/doc/Readme.sbc.txt
+++ b/doc/Readme.sbc.txt
@@ -116,6 +116,12 @@ The patterns which can be used are the following:
 
   $ci  - Call-ID
 
+  $si  - source (remote) IP address
+  $sp  - source (remote) port
+
+  $Ri  - destination (local/received) IP address
+  $Rp  - destination (local/received) port
+
   $P(paramname) - paramname from P-App-Param
     Example:
       P-App-Param: u=myuser;p=mypwd;d=mydomain

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to