Module: kamailio
Branch: master
Commit: 42c7609631235aae4a2d9d98c108b0af7cce1357
URL: 
https://github.com/kamailio/kamailio/commit/42c7609631235aae4a2d9d98c108b0af7cce1357

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Daniel-Constantin Mierla <mico...@gmail.com>
Date: 2024-04-03T08:07:15+02:00

sdpops: added $sdp(c:af) - address family of first media connection

- can be compared with $K(IPv4) or $K(IPv6)

---

Modified: src/modules/sdpops/sdpops_mod.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/42c7609631235aae4a2d9d98c108b0af7cce1357.diff
Patch: 
https://github.com/kamailio/kamailio/commit/42c7609631235aae4a2d9d98c108b0af7cce1357.patch

---

diff --git a/src/modules/sdpops/sdpops_mod.c b/src/modules/sdpops/sdpops_mod.c
index 507e7dbe81b..644ded5b064 100644
--- a/src/modules/sdpops/sdpops_mod.c
+++ b/src/modules/sdpops/sdpops_mod.c
@@ -2174,6 +2174,33 @@ static int pv_get_sdp(sip_msg_t *msg, pv_param_t *param, 
pv_value_t *res)
                                return pv_get_strval(msg, param, res, &s);
                        }
                        return pv_get_null(msg, param, res);
+               case 6:
+                       /* c:af - connection address family */
+                       if(sdp->sessions == NULL) {
+                               return pv_get_null(msg, param, res);
+                       }
+                       if(sdp->sessions->streams == NULL) {
+                               if(sdp->sessions->ip_addr.s != NULL
+                                               && sdp->sessions->ip_addr.len > 
0) {
+                                       return pv_get_sintval(msg, param, res, 
sdp->sessions->pf);
+                               } else {
+                                       return pv_get_null(msg, param, res);
+                               }
+                       } else {
+                               if(sdp->sessions->streams->ip_addr.s != NULL
+                                               && 
sdp->sessions->streams->ip_addr.len > 0) {
+                                       return pv_get_sintval(
+                                                       msg, param, res, 
sdp->sessions->streams->pf);
+                               } else {
+                                       if(sdp->sessions->ip_addr.s != NULL
+                                                       && 
sdp->sessions->ip_addr.len > 0) {
+                                               return pv_get_sintval(
+                                                               msg, param, 
res, sdp->sessions->pf);
+                                       } else {
+                                               return pv_get_null(msg, param, 
res);
+                                       }
+                               }
+                       }
 
                default:
                        return pv_get_null(msg, param, res);
@@ -2222,6 +2249,8 @@ static int pv_parse_sdp_name(pv_spec_p sp, str *in)
                                sp->pvp.pvn.u.isname.name.n = 0;
                        else if(strncmp(in->s, "c:ip", 4) == 0)
                                sp->pvp.pvn.u.isname.name.n = 2;
+                       else if(strncmp(in->s, "c:af", 4) == 0)
+                               sp->pvp.pvn.u.isname.name.n = 6;
                        else if(strncmp(in->s, "o:ip", 4) == 0)
                                sp->pvp.pvn.u.isname.name.n = 3;
                        else

_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org

Reply via email to