Hi,
I am trying to use t_suspend()/t_continue() multiple times on the same
transaction. Calling t_suspend() more than once works, but the second
time I call t_continue() the transaction is killed and a 500 response is
sent. It is the "if (branch == t->nr_of_outgoings)" check from the code
fragment below (from t_suspend.c:t_continue()) that results in the
transaction being killed - you can see the debug/error line I added to
determine this in the fragment.
Is using t_suspend()/t_continue() multiple times something that should
work?
Thanks,
Peter
if (t->uas.status < 200) {
/* No final reply has been sent yet.
* Check whether or not there is any pending branch.
*/
for ( branch = 0;
branch < t->nr_of_outgoings;
branch++
) {
if ((t->uac[branch].request.buffer != NULL)
&& (t->uac[branch].last_received < 200)
)
break;
}
if (branch == t->nr_of_outgoings) {
/* There is not any open branch so there is
* no chance that a final response will be
received. */
ret = 0;
LM_ERR("branch == t->nr_of_outgoings\n");
goto kill_trans;
}
}
--
Peter Dunkley
Technical Director
Crocodile RCS Ltd
Hi, the new RFC 6665 mandates that the subscription dialog is made
*after* the first NOTIFY from the UAS (rather than after the 200 to
the initial SUBSCRIBE). This means that the UAC MUST take the route
set from the *first* received NOTIFY (instead of taking it from the
200 to the initial SUBSCRIBE).
Therefore a proxy compliant with RFC 6665 MUST always add RR to
in-dialog NOTIFY requests and thus, I propose that the default SR
script file implements it.
Regards.
--
Iñaki Baz Castillo
<ibc(a)aliax.net>
Module: sip-router
Branch: master
Commit: 0f702f6e236eb0cbb238bf83a0c4ae94d7b3cad8
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0f702f6…
Author: Anca Vamanu <anca.vamanu(a)1and1.ro>
Committer: Anca Vamanu <anca.vamanu(a)1and1.ro>
Date: Thu Jul 19 17:49:13 2012 +0300
modules_k/uac: uac_replace_from/to AUTO mode with dialog module
Added a implementation for uac_replace_from/to() that uses the dialog
module for AUTO mode. In this mode the URIs are stored as dialog
variables.
The change in tm module fixes a bug: if uac_replace_to() was called, the
URI was not changed accordingly in Cancel.
---
modules/tm/t_cancel.c | 5 +-
modules_k/dialog/dialog.c | 2 +
modules_k/dialog/dlg_load.h | 6 +
modules_k/uac/README | 111 +++++++++++-----
modules_k/uac/doc/uac_admin.xml | 68 +++++++++-
modules_k/uac/replace.c | 292 ++++++++++++++++++++++++++++++---------
modules_k/uac/uac.c | 17 ++-
7 files changed, 393 insertions(+), 108 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=0f7…
Hi All,
I am experiencing an issue when i try to contact xy(a)cisco.com.
I found that kamailio/sip-router can't resolve by default resolving way
a TCP + SRV records from domain cisco.com.
e.g. cisco.com
misi@alma:~$ host -t NAPTR cisco.comcisco.com has no NAPTR record
misi@alma:~$ host -t SRV _sip._udp.cisco.com
Host _sip._udp.cisco.com not found: 3(NXDOMAIN)
misi@alma:~$ host -t SRV _sip._tcp.cisco.com_sip._tcp.cisco.com has SRV record 1 0 5060 vcsgw.cisco.com.
misi@alma:~$ host -t SRV _sips._tcp.cisco.com_sips._tcp.cisco.com has SRV record 1 0 5061 vcsgw.cisco.com.
I can't call xy(a)cisco.com because it does not exists an NAPTR record in
domain cisco.com,
and furthermore no SRV with udp.
But it exists sip+tcp record
and also exists an secure sip SRV, so sips+tcp record!
I read rfc3263
I find kamailio dns resolver is not working as it should according RFC3263.
http://tools.ietf.org/html/rfc3263
_If no NAPTR records are found, the client constructs SRV queries
for those transport protocols it supports, and does a query for each._
So kamailio should query all (udp, tcp, tls, sctp whatever) protocols.
Can anyone help/guide me to create a fix to this issue?
My plan is to create a patch to kamailio resolver, to correct and behave
according RFC3263.
Any help or guidance appreciated!
Thanks,
Misi
Hello,
Kamailio SIP Server v3.3.2 stable release is out.
This is a maintenance release of the latest stable branch, 3.3, that
includes fixes since release of v3.3.1. There is no change to database
schema or configuration language structure that you have to do on
installations of v3.3.0 or v3.3.1. Deployments running previous v3.x.x
versions are strongly recommended to be upgraded to v3.3.2.
For more details about version 3.3.2 (including links and hints to
download the tarball or from GIT repository), visit:
* http://www.kamailio.org/w/2012/10/kamailio-v3-3-2-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://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
Module: sip-router
Branch: master
Commit: 2750e03d4977d4a8f59ca0d2d0f59e1caec96b2d
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=2750e03…
Author: Carsten Bock <carsten(a)ng-voice.com>
Committer: Carsten Bock <carsten(a)ng-voice.com>
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>osas(a)voipembedded.com</email>
</address>
</editor>
+ <editor>
+ <firstname>Carsten</firstname>
+ <surname>Bock</surname>
+ <affiliation><orgname>ng-voice GmbH</orgname></affiliation>
+ <address>
+ <email>carsten(a)ng-voice.com</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 a245d73..d6a9dc5 100644
--- a/modules/rtpproxy/doc/rtpproxy_admin.xml
+++ b/modules/rtpproxy/doc/rtpproxy_admin.xml
@@ -344,6 +344,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 9a0fd14..59e7092 100644
--- a/modules/rtpproxy/rtpproxy.c
+++ b/modules/rtpproxy/rtpproxy.c
@@ -1993,6 +1993,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];
@@ -2012,7 +2013,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':
@@ -2076,6 +2077,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) {
@@ -2253,6 +2259,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);
@@ -2260,7 +2272,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
Module: sip-router
Branch: master
Commit: 03c080376e26aeae8261d2ff12fc290a3925ef91
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=03c0803…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Wed Oct 31 14:40:25 2012 +0100
kamailio.cfg: updated wiki link to match the version
---
etc/kamailio.cfg | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/etc/kamailio.cfg b/etc/kamailio.cfg
index 247ddd9..a8d694a 100644
--- a/etc/kamailio.cfg
+++ b/etc/kamailio.cfg
@@ -6,7 +6,7 @@
#
# Direct your questions about this file to: <sr-users(a)lists.sip-router.org>
#
-# Refer to the Core CookBook at http://www.kamailio.org/dokuwiki/doku.php
+# Refer to the Core CookBook at http://www.kamailio.org/wiki/
# for an explanation of possible statements, functions and parameters.
#
# Several features can be enabled using '#!define WITH_FEATURE' directives: