Hi Daniel, you're right (as almost always): It's not a bug-fix, but more a new feature. I've reverted the change; that was the reason, why i only commited the feature only in trunk. Actually i did a cherry-pick, but git did not ask for a new comment, so i assumed it would automatically add the "cherry picked from commit..." message. No serious commits on the first day after a holiday. Thanks for reminding me.
Kind regards, Carsten 2012/11/1 Daniel-Constantin Mierla <[email protected]>: > Hello, > > is this a bug fix, because at first sight seems to be a new feature. > Backports to the code in stable branches must be only related to fixing > issues, otherwise they become a mess and will be no longer stable. > > In exceptional cases, if it is not clear that is a bug fix or a new feature, > it should be discussed on the devel list before. > > Moreover, the backports should be done via cherry-picking (or merging) > commits from master branch, to be able to track what fixes were not > backported -- some hints are presented at > http://www.kamailio.org/wiki/devel/backporting-to-3.2.x . > > It would be also good to try to follow git recommendations for commit > messages, summarized at: > - http://www.kamailio.org/wiki/devel/git-commit-guidelines#commit_message > > The email notifications as well as changelog will be then properly > formatted. > > Cheers, > Daniel > > On 11/1/12 8:27 PM, [email protected] wrote: >> >> Module: sip-router >> Branch: 3.3 >> Commit: cd1c367218cdcd5f0867af2234f6080e8e6622a6 >> URL: >> http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=cd1c367218cdcd5f0867af2234f6080e8e6622a6 >> >> Author: Carsten Bock <[email protected]> >> Committer: Carsten Bock <[email protected]> >> Date: Mon Sep 17 17:25:38 2012 +0200 >> >> New Option: "x" for automatic bridging between IPv4 and IPv6. >> Based on the following assumption: "i" is the IPv4 interface >> and "e" is the IPv6 interface on the RTPProxy (tested with both >> RTPProxy and Sipwise's ngcp-mediaproxy-ng). >> >> Mechanism is as follows: >> - IP in SDP is IPv4: Do bridging "ie" >> - IP in SDP is IPv6: Do bridging "ei" >> >> Not a big deal, but makes the configuration much more easier. >> >> --- >> >> modules/rtpproxy/doc/rtpproxy.xml | 8 ++++++++ >> modules/rtpproxy/doc/rtpproxy_admin.xml | 7 +++++++ >> modules/rtpproxy/rtpproxy.c | 22 +++++++++++++++++++++- >> 3 files changed, 36 insertions(+), 1 deletions(-) >> >> diff --git a/modules/rtpproxy/doc/rtpproxy.xml >> b/modules/rtpproxy/doc/rtpproxy.xml >> index d5a15ee..741a4d9 100644 >> --- a/modules/rtpproxy/doc/rtpproxy.xml >> +++ b/modules/rtpproxy/doc/rtpproxy.xml >> @@ -57,6 +57,14 @@ >> <email>[email protected]</email> >> </address> >> </editor> >> + <editor> >> + <firstname>Carsten</firstname> >> + <surname>Bock</surname> >> + <affiliation><orgname>ng-voice >> GmbH</orgname></affiliation> >> + <address> >> + <email>[email protected]</email> >> + </address> >> + </editor> >> </authorgroup> >> <copyright> >> <year>2003-2008</year> >> diff --git a/modules/rtpproxy/doc/rtpproxy_admin.xml >> b/modules/rtpproxy/doc/rtpproxy_admin.xml >> index 6b9577a..64843eb 100644 >> --- a/modules/rtpproxy/doc/rtpproxy_admin.xml >> +++ b/modules/rtpproxy/doc/rtpproxy_admin.xml >> @@ -343,6 +343,13 @@ rtpproxy_offer(); >> the 'w' flag for clients behind NAT! See >> also above notes! >> </para></listitem> >> <listitem><para> >> + <emphasis>x</emphasis> - this flag will do >> automatic bridging between IPv4 on the >> + "internal network" and IPv6 on the >> "external network". The distinction is done by >> + the given IP in the SDP, e.g. a IPv4 >> Address will always call "ie" to the RTPProxy >> + (IPv4(i) to IPv6(e)) and an IPv6Address >> will always call "ei" to the RTPProxy (IPv6(e) >> + to IPv4(i)). >> + </para></listitem> >> + <listitem><para> >> <emphasis>f</emphasis> - instructs >> rtpproxy to ignore marks >> inserted by another rtpproxy in transit to >> indicate that the >> session is already goes through another >> proxy. Allows creating >> diff --git a/modules/rtpproxy/rtpproxy.c b/modules/rtpproxy/rtpproxy.c >> index b50b2d1..e18655f 100644 >> --- a/modules/rtpproxy/rtpproxy.c >> +++ b/modules/rtpproxy/rtpproxy.c >> @@ -1939,6 +1939,7 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, >> char* str2, int offer, int forc >> {NULL, 0}, /* Timeout-Socket */ >> }; >> int iovec_param_count; >> + int autobridge_ipv4v6; >> char *c1p, *c2p, *bodylimit, *o1p; >> char itoabuf_buf[20]; >> @@ -1958,7 +1959,7 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, >> char* str2, int offer, int forc >> LM_ERR("out of pkg memory\n"); >> FORCE_RTP_PROXY_RET (-1); >> } >> - flookup = force = real = orgip = commip = via = 0; >> + flookup = force = real = orgip = commip = via = autobridge_ipv4v6 >> = 0; >> for (cp = str1; cp != NULL && *cp != '\0'; cp++) { >> switch (*cp) { >> case '1': >> @@ -2022,6 +2023,11 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, >> char* str2, int offer, int forc >> orgip = 1; >> break; >> + case 'x': >> + case 'X': >> + autobridge_ipv4v6 = 1; >> + break; >> + >> case 'w': >> case 'W': >> if (append_opts(&opts, 'S') == -1) { >> @@ -2199,6 +2205,12 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, >> char* str2, int offer, int forc >> } >> /* XXX must compare address families in all >> addresses */ >> if (pf == AF_INET6) { >> + if (autobridge_ipv4v6 != 0) { >> + if ((append_opts(&opts, 'E') == >> -1) && (append_opts(&opts, 'I') == -1)) { >> + LM_ERR("out of pkg >> memory\n"); >> + FORCE_RTP_PROXY_RET (-1); >> + } >> + } >> if (append_opts(&opts, '6') == -1) { >> LM_ERR("out of pkg memory\n"); >> FORCE_RTP_PROXY_RET (-1); >> @@ -2206,7 +2218,15 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, >> char* str2, int offer, int forc >> /* We need to update the pointers and the >> length here, it has changed. */ >> v[1].iov_base = opts.s.s; >> v[1].iov_len = opts.oidx; >> + } else { >> + if (autobridge_ipv4v6 != 0) { >> + if ((append_opts(&opts, 'I') == >> -1) && (append_opts(&opts, 'E') == -1)) { >> + LM_ERR("out of pkg >> memory\n"); >> + FORCE_RTP_PROXY_RET (-1); >> + } >> + } >> } >> + >> STR2IOVEC(newip, v[9]); >> STR2IOVEC(oldport, v[11]); >> #ifdef EXTRA_DEBUG >> >> >> _______________________________________________ >> sr-dev mailing list >> [email protected] >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev > > > > -- > Daniel-Constantin Mierla - http://www.asipto.com > http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda > Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - http://asipto.com/u/kat > Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 - > http://asipto.com/u/katu > -- Carsten Bock CEO (Geschäftsführer) ng-voice GmbH Schomburgstr. 80 D-22767 Hamburg / Germany http://www.ng-voice.com mailto:[email protected] Office +49 40 34927219 Fax +49 40 34927220 Sitz der Gesellschaft: Hamburg Registergericht: Amtsgericht Hamburg, HRB 120189 Geschäftsführer: Carsten Bock Ust-ID: DE279344284 Hier finden Sie unsere handelsrechtlichen Pflichtangaben: http://www.ng-voice.com/imprint/ _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
