Module: sip-router
Branch: carstenbock/ims
Commit: f4d960b5df45fe8ed17b5dd51ab145b796f62121
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=f4d960b5df45fe8ed17b5dd51ab145b796f62121

Author: Carsten Bock <[email protected]>
Committer: Carsten Bock <[email protected]>
Date:   Tue Jan 11 22:03:15 2011 +0100

- The SDP needs to be checked for RFC1918 address, in case we rewrite.
- Definitely: The rtpproxy-code should be removed and replaced by the 
rtpproxy-mod form Kamailio

---

 modules/pcscf/sdp_util.c |   44 ++++++++++++++++++++++++--------------------
 1 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/modules/pcscf/sdp_util.c b/modules/pcscf/sdp_util.c
index 5f4367b..3d5a1b8 100644
--- a/modules/pcscf/sdp_util.c
+++ b/modules/pcscf/sdp_util.c
@@ -248,24 +248,28 @@ static int extract_mediaip(str *body, str *mediaip, int 
*pf)
 
 
 
-//static int sdp_1918(struct sip_msg* msg)
-//{
-//     str body, ip;
-//     int pf;
-//
-//     if (extract_sdp_body(msg, &body) == -1) {
-//             LOG(L_ERR,"ERROR: sdp_1918: cannot extract body from msg!\n");
-//             return 0;
-//     }
-//     if (extract_mediaip(&body, &ip, &pf) == -1) {
-//             LOG(L_ERR, "ERROR: sdp_1918: can't extract media IP from the 
SDP\n");
-//             return 0;
-//     }
-//     if (pf != AF_INET || isnulladdr(&ip, pf))
-//             return 0;
-//
-//     return (is1918addr(&ip) == 1) ? 1 : 0;
-//}
+static int sdp_1918(struct sip_msg* msg)
+{
+       str body, ip;
+       int pf;
+
+       if (!msg) {
+               LOG(L_ERR,"ERROR: sdp_1918: No msg!\n");
+               return 0;
+       }
+       if (extract_sdp_body(msg, &body) == -1) {
+               LOG(L_ERR,"ERROR: sdp_1918: cannot extract body from msg!\n");
+               return 0;
+       }
+       if (extract_mediaip(&body, &ip, &pf) == -1) {
+               LOG(L_ERR, "ERROR: sdp_1918: can't extract media IP from the 
SDP\n");
+               return 0;
+       }
+       if (pf != AF_INET || isnulladdr(&ip, pf))
+               return 0;
+
+       return (is1918addr(&ip) == 1) ? 1 : 0;
+}
 
 static int alter_mediaip(struct sip_msg *msg, str *body, str *oldip, int oldpf,
                        str *newip, int newpf, int preserve)
@@ -1499,7 +1503,7 @@ int P_SDP_manipulate(struct sip_msg *msg,char *str1,char 
*str2)
                                had_sdp_in_invite = 1;
                                        /* on INVITE */
                                        /* check the sdp if it has a 1918 */
-                                       if(1)
+                                       if (sdp_1918(msg))
                                        {
                                        /* get rtp_proxy/nathelper to open 
ports - get a iovec*/
                                                if (pcscf_nat_enable && 
rtpproxy_enable)
@@ -1517,7 +1521,7 @@ int P_SDP_manipulate(struct sip_msg *msg,char *str1,char 
*str2)
                                if (msg->first_line.u.reply.statuscode == 183 ||
                                        (msg->first_line.u.reply.statuscode >= 
200 &&
                                         msg->first_line.u.reply.statuscode < 
300)) {
-                                       if(1){
+                                       if (sdp_1918(msg)){
                                                /* sdp_1918(msg) */
                                                /* str1 & str2 must be 
something */
                                                if (pcscf_nat_enable && 
rtpproxy_enable)


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to