I found a partial list of supported RFCs on the website. What is the entire list of supported RFCs?
This email (including any attachments) is proprietary to Aspect Software, Inc. and may contain information that is confidential. If you have received this message in error, please do not read, copy or forward this message. Please notify the sender immediately, delete it from your system and destroy any copies. You may not further disclose or distribute this email or its attachments.
Module: sip-router
Branch: master
Commit: d877c3ac0576fe9a0aea1262c6ec05eb7eb26e3e
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=d877c3a…
Author: Carsten Bock <carsten(a)ng-voice.com>
Committer: Carsten Bock <carsten(a)ng-voice.com>
Date: Fri Jul 18 19:17:00 2014 +0800
ims_usrloc_scscf: Bugfix/Improvement: Use "last-inserted ID" instead of doing a separate query (may cause issues with Replication/Database-Clusters)
---
modules/ims_usrloc_scscf/usrloc_db.c | 22 +---------------------
1 files changed, 1 insertions(+), 21 deletions(-)
diff --git a/modules/ims_usrloc_scscf/usrloc_db.c b/modules/ims_usrloc_scscf/usrloc_db.c
index 044ca98..49b551b 100644
--- a/modules/ims_usrloc_scscf/usrloc_db.c
+++ b/modules/ims_usrloc_scscf/usrloc_db.c
@@ -251,27 +251,7 @@ int db_insert_ucontact(impurecord_t* _r, ucontact_t* _c) {
LM_ERR("Failed to insert/update contact record for [%.*s]\n", _c->c.len, _c->c.s);
return -1;
}
- /* search for the ID if the contact just entered */
- if (ul_dbf.query(ul_dbh, key, 0, val, key_return, 1, 1, NULL, &_rs) != 0) {
- LM_ERR("Unable to find contact [%.*s] in DB to complete IMPU-contact mapping\n", _c->c.len, _c->c.s);
- ul_dbf.free_result(ul_dbh, _rs);
- return -1;
- }
-
- if (RES_ROW_N(_rs) == 0) {
- LM_DBG("Contact %.*s not found in DB\n",_c->c.len, _c->c.s);
- ul_dbf.free_result(ul_dbh, _rs);
- return -1;
- }
-
- if (RES_ROW_N(_rs) > 1) {
- LM_WARN("more than one contact found in DB for contact [%.*s] - this should not happen... proceeding with first entry\n",
- _c->c.len, _c->c.s);
- }
-
- ret_val = ROW_VALUES(RES_ROWS(_rs));
- contact_id = ret_val[0].val.int_val;
- ul_dbf.free_result(ul_dbh, _rs);
+ contact_id = ul_dbf.last_inserted_id(ul_dbh);
LM_DBG("contact ID is %d\n", contact_id);
/* search for ID of the associated IMPU */
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#448 - usrloc driver error on query: Duplicate entry 'XXXXXXXXXXXX' for key 'ruid_idx'
User who did this - Savolainen Dmitri (sdi)
----------
It looks fine now! Thank you
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=448#comment1553
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#451 - rtpproxy_manage with "l" option returns wrong ports
User who did this - Sebastian Damm (sdamm)
----------
My scenario is the following: I call from a phone directly connected to the internet to a phone behind NAT. In the original INVITE, I check the branch flag saved with the registration wether I have to call rtpproxy_manage() for this call. Now when a reINVITE comes from the NATed client, nat_uac_test will tell me whether I have to call rtpproxy_manage() this time, too. But when the reINVITE comes from the client directly connected, I have no chance of finding out, whether this call was forced through an RTP proxy before. This is why I need the lookup option, so I can call it every time, and the RTP proxy gives me a result only if there is already an existing session.
The other scenario is a call between two clients in open internet situation, where a rtpproxy_manage() call in reINVITE would lead to audio being forced through RTP proxy whereas it went directly between the two clients before.
Do I miss something?
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=451#comment1552
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#443 - db_unixodbc cannot load more than 1024 bytes from a database field (patch supplied)
User who did this - Daniel-Constantin Mierla (miconda)
----------
Took me a while to get to this patch due to heavy traveling lately.
Looking at the code I wonder if db_unixodbc_load_cell(...) should not return a code and indicate an error if there is no more memory. The function it is used inside another functions that returns an int.
What was the reason on just declaring as void function? Is it working all ok when there is a failure allocating memory inside db_unixodbc_load_cell()?
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=443#comment1551
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.
Module: sip-router
Branch: master
Commit: f2dc27ced23a03241045607f394ca2d6834e90f8
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=f2dc27c…
Author: Timo Teräs <timo.teras(a)iki.fi>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Thu Jul 17 23:40:10 2014 +0200
websocket: option to compile the module without libunistring
- patch discussed on sr-dev
- dcm: aded define wrapper to have this as compile time option and
included the MIT license from the code site
---
modules/websocket/Makefile | 10 ++++-
modules/websocket/utf8_decode.h | 82 +++++++++++++++++++++++++++++++++++++++
modules/websocket/ws_frame.c | 11 +++++
3 files changed, 102 insertions(+), 1 deletions(-)
diff --git a/modules/websocket/Makefile b/modules/websocket/Makefile
index bb7c809..b28f0ab 100644
--- a/modules/websocket/Makefile
+++ b/modules/websocket/Makefile
@@ -7,6 +7,8 @@ include ../../Makefile.defs
auto_gen=
NAME=websocket.so
+EMBEDDED_UTF8_DECODE ?= 0
+
ifeq ($(CROSS_COMPILE),)
SSL_BUILDER=$(shell \
if pkg-config --exists libssl; then \
@@ -27,7 +29,13 @@ else
# E.g.: make TLS_HOOKS=1 TLS_EXTRA_LIBS="-lz -lkrb5"
endif
-LIBS+= $(TLS_EXTRA_LIBS) -lunistring
+LIBS+= $(TLS_EXTRA_LIBS)
+
+ifeq ($(EMBEDDED_UTF8_DECODE),0)
+ LIBS+= -lunistring
+else
+ DEFS += -DEMBEDDED_UTF8_DECODE
+endif
# Static linking, if you'd like to use TLS and WEBSOCKET at the same time
#
diff --git a/modules/websocket/utf8_decode.h b/modules/websocket/utf8_decode.h
new file mode 100644
index 0000000..bb2d4bf
--- /dev/null
+++ b/modules/websocket/utf8_decode.h
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2008-2010 Bjoern Hoehrmann <bjoern(a)hoehrmann.de>
+ *
+ * MIT License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details.
+ */
+
+#ifdef EMBEDDED_UTF8_DECODE
+
+#ifndef _UTF8_DECODE_H_
+#define _UTF8_DECODE_H_
+
+#include <stdint.h>
+#include <stddef.h>
+
+#define UTF8_ACCEPT 0
+#define UTF8_REJECT 12
+
+static const uint8_t utf8d[] = {
+ // The first part of the table maps bytes to character classes that
+ // to reduce the size of the transition table and create bitmasks.
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
+ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+ 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+ 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8,
+
+ // The second part is a transition table that maps a combination
+ // of a state of the automaton and a character class to a state.
+ 0,12,24,36,60,96,84,12,12,12,48,72, 12,12,12,12,12,12,12,12,12,12,12,12,
+ 12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,
+ 12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,
+ 12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,
+ 12,36,12,12,12,12,12,12,12,12,12,12,
+};
+
+static inline uint32_t decode(uint32_t* state, uint32_t* codep, uint32_t byte)
+{
+ uint32_t type = utf8d[byte];
+
+ *codep = (*state != UTF8_ACCEPT) ?
+ (byte & 0x3fu) | (*codep << 6) :
+ (0xff >> type) & (byte);
+
+ *state = utf8d[256 + *state + type];
+ return *state;
+}
+
+static inline int IsUTF8(uint8_t* s, size_t len)
+{
+ uint32_t codepoint, state = 0;
+
+ while (len--)
+ decode(&state, &codepoint, *s++);
+
+ return state == UTF8_ACCEPT;
+}
+
+#endif
+
+#endif
diff --git a/modules/websocket/ws_frame.c b/modules/websocket/ws_frame.c
index 2f1a248..07f6204 100644
--- a/modules/websocket/ws_frame.c
+++ b/modules/websocket/ws_frame.c
@@ -27,7 +27,13 @@
*/
#include <limits.h>
+
+#ifdef EMBEDDED_UTF8_DECODE
+#include "utf8_decode.h"
+#else
#include <unistr.h>
+#endif
+
#include "../../events.h"
#include "../../receive.h"
#include "../../stats.h"
@@ -726,8 +732,13 @@ int ws_frame_transmit(void *data)
frame.fin = 1;
/* Can't be sure whether this message is UTF-8 or not so check to see
if it "might" be UTF-8 and send as binary if it definitely isn't */
+#ifdef EMBEDDED_UTF8_DECODE
+ frame.opcode = IsUTF8((uint8_t *) wsev->buf, wsev->len) ?
+ OPCODE_TEXT_FRAME : OPCODE_BINARY_FRAME;
+#else
frame.opcode = (u8_check((uint8_t *) wsev->buf, wsev->len) == NULL) ?
OPCODE_TEXT_FRAME : OPCODE_BINARY_FRAME;
+#endif
frame.payload_len = wsev->len;
frame.payload_data = wsev->buf;
frame.wsc = wsconn_get(wsev->id);
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#448 - usrloc driver error on query: Duplicate entry 'XXXXXXXXXXXX' for key 'ruid_idx'
User who did this - Daniel-Constantin Mierla (miconda)
----------
Call-id value was not refreshed in case of update. I pushed a patch with commit c2b334bf41cbe6fa7b7e15d825dca1fa36c33770
Can you try again with it?
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=448#comment1550
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.