wiki was this related to $(hdr(name)[N]):
If [N] is omitted then the body of the first header is printed. The
first header is got when N=0, for the second N=1, a.s.o. In case of a
comma-separated multi-body headers, it returns all the bodies,
comma-separated.
i don't understand the last sentence. how can i get all bodies of all
headers of name=x as a comma separated list?
-- juha
I am having this issue when using kamailio-4.1.2 (after patching the segfault bug). The kamailio is configurated as a frontend for asterisk. When using UDP for SIP, this works correctly. However, I am now setting up websockets (no TLS yet), and I am
getting a disconnect after an interval. I am getting this on the logs:
Apr 11 16:19:41 elx3 /usr/sbin/kamailio[4814]: WARNING: websocket [ws_frame.c:868]: ws_keepalive(): forcibly closing connection
Tweaking with keepalive_mechanism=1 and keepalive_timeout does not change the situation, and does not even modify the interval before the disconnection. Is this keepalive something that should be visible on a SIP trace? I am only seeing REGISTER and its
response from the jsSIP trace. I do not want to have to disable keepalives just to work around this issue.
I get this error "480 Temporarily Unavailable" Every time I dial 206-456-1041
this is the information I have entered in the the filds:
line 1 Username: optimized72 <optimized72(a)iptel.org>
Password: Freek101@
Proxy: iptel.org
--
*l <http://LEDSLEDSLEDS.COM>edslesdlesd.com <http://edslesdlesd.com>*
David Giannetto
VOIP COM
915 235 47 86
105 E San Antonio Ave Suit 303
El Paso, Texas, 79901
VOIP COM
625 106 6388
Lerdo y 19 # 986
CD. Cuauhtemoc, Chih.
Hi all.
I want to thank you all for the great info and help that you provide in this
mailing list. I am just starting to work with kamailio and still learning.
I would like some help to point me on the right direction on our new
challenge:
We have a kamailio server acting basically as location server and call
proxy. We are connected to a PSTN gw to reach the outside world. It is
working fine but now the client requested some changes that may imply we
work with username base subscribers (user1. Characters based) at kamailio
side but we still need to convert these usernames to numbers when sending
the call to the PSTN gw. Username-number should be fix and can be stored in
a table on the db.
We would need to lookup userpart of all the header (from, to, contact.) and
substitute incoming username with the peer number for calls from the app to
pstn. And translate numbers to usernames on the calls from pstn to the apps.
I am reading uac module and the sqlops module to search in the db before
the substitution but I am not sure if that is the best approach to the
problem.
Could anyone point me in the right direction or suggest a better way to do
that? Have anyone already implemented this type of modifications? I am a bit
worried for the dialog consistency although I've read the uac module should
take care of it
Thanks in advanced
Helena
From: Helena Garcia-Nieto [mailto:helena.gnieto@morodo.co.uk]
Sent: martes, 10 de diciembre de 2013 16:19
To: 'Kamailio (SER) - Users Mailing List'
Cc: helena.gnieto(a)morodo.co.uk
Subject: 500 I'm terribly sorry error
Hello,
Thanks in advanced for the help. I am almost new with kamailio and still
struggling through silly problems so please forgive me if the solution is so
obvious.
I have a network like
Xlitle -- Kamailio -- GW
The GW is more or less out of my reach for changing the behaivour.
As devices I have xlitle
Kamailio is on version 4.0.2
I've changed only few things from the default config file. Add mysql
support, auth, userlocdb, pstngw.
For this part, gw routing , I've defined gw ip and port inside the PSTN
definition like:
#!ifdef WITH_PSTN
# PSTN GW Routing
#
# - pstn.gw_ip: valid IP or hostname as string value, example:
# pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address"
#
# - by default is empty to avoid misrouting
pstn.gw_ip = "" desc "PSTN GW Address"
pstn.gw_port = "" desc "PSTN GW Port"
iskratel.gw_ip = "10.XX.XX.XX"
iskratel.gw_port = "5060"
#!endif
I route the calls with:
route(ISKRATEL);
And defined a routing function
route[ISKRATEL] {
#!ifdef WITH_PSTN
# check if ISKRATEL GW IP is defined
if (strempty($sel(cfg_get.iskratel.gw_ip))) {
xlog("SCRIPT: PSTN rotuing enabled but iskratel.gw_ip not
defined\n");
return;
}
# only local users allowed to call
if(from_uri!=myself) {
sl_send_reply("403", "Not Allowed");
exit;
}
if (strempty($sel(cfg_get.iskratel.gw_port))) {
$ru = "sip:" + $rU + "@" + $sel(cfg_get.iskratel.gw_ip);
} else {
$ru = "sip:" + $rU + "@" + $sel(cfg_get.iskratel.gw_ip) +
":"
+ $sel(cfg_get.iskratel.gw_port);
}
# Add profix to ISKRATEL: A99901
subst_uri('/^sip:(.*)/sip:A99901\1/i'); # add A99901
route(RELAY);
exit;
#!endif
return;
}
I can see that the code goes all the way to the route(relay) but all I can
see is the 500 I'm terribly sorry, server error occurred (7/SL) and a second
response 500 I'm terribly sorry, server error occurred (7/TM)
I've tried defining the IP as the given pstn.gw_ip and route(pstn) without
changing anything on the pst default routing but the response of the server
is the same.
I cannot see any special error on the logs.
I have the exact same config for this part, in another test server and the
calls go to the gw without reporting any error.
I'll appreciate any help from you! Thanks in advanced for your time
Helena
Hello,
On arrival of INVITE packet to the Kamailio server, which module is used to
take in response to Invite packet. Other than record_route, which records
the route.
And what to do if we want to add some actions in response to INVITE packet.
Cheers.
--
View this message in context: http://sip-router.1086192.n5.nabble.com/Processing-on-Invite-Packet-tp12709…
Sent from the Users mailing list archive at Nabble.com.
Hello,
I am working on version: kamailio 4.1.2 (x86_64/linux) and heaving troubles
with drouting module.
The problem i am facing is that kamailio cannot enter routeid that is
provided inside dr_rule table.
My last try was to use standard script file with placing following data
before t_relay
if (!do_routing("10")) {
sl_send_reply("403", "No route for You");
exit;
}
additionaly i have added route definition
route[1] {
xlog("L_INFO","[INFO] Default route --- fn-$fn, fu-$fu, fU-$fU,
ru-$ru, rU-$rU, sp-$sp, si-$si, tu-$tu, tU-$tU");
uac_replace_from("sip:$fU@10.10.10.5");
}
My DB contains following data:
+--------+---------+--------+---------+----------+---------+--------+--------------+
| ruleid | groupid | prefix | timerec | priority | routeid | gwlist |
description |
+--------+---------+--------+---------+----------+---------+--------+--------------+
| 1 | 10 | 43 | | 0 | 1 | 1 | test
rule |
+--------+---------+--------+---------+----------+---------+--------+--------------+
+------+------+---------------+-------+------------+-------+-------------+
| gwid | type | address | strip | pri_prefix | attrs | description |
+------+------+---------------+-------+------------+-------+-------------+
| 1 | 10 | 10.10.10.9 | 0 | NULL | NULL | FirstGW |
+------+------+---------------+-------+------------+-------+-------------+
The result is that script is omitting route[1] without any purpose (xlog is
not shown, $fU is not modified).
Could somebody help me to understand whats going on?
Thanks in advanced,
Mac
Hello, I have a piece of code as follows:
$avp(callfwdcount) = 0;
$avp(dnumber) = $rU;
$var(found) = 0;
while($avp(callfwdcount) < 3) {
if (avp_db_load("$avp(dnumber)", "$avp(callfwd_permanent)"))
{
.....
$avp(dst_number) = $avp(callfwd_permanent); # SET THE CALL FORWARD TO NUMBER
....
}
Now this works if this is a single domain set up. I am running a multidomain set up and need to check the domain part to ( $rd ) and if there is match in the database with $rU and $rd then the forward to number needs to be set. Can someone let me know how this can be done?
Thank you,
Arun
Hi,
I am wondering if perhaps we ought to do something with regard to
specific handling of confirmed-nonacked dialogs (CONFIRMED_NA state in
dlg_hash.h) in the dialog module. These are dialogs where a 2xx reply is
sent to the opening INVITE transaction, but no end-to-end ACK is seen[1]
by Kamailio and thus the dialog is not recorded as transitioning to
CONFIRMED state.
This can happen for a variety of reasons, but the most common scenario I
run into is the CANCEL-200 OK race, where the caller cancels the call
just as the callee answers it, near-simultaneously. The 200 OK hasn't
gotten back to the caller yet, so when it receives it, it has no effect,
because from the caller's point of view, the dialog has already been
CANCEL'd. Meanwhile, the CANCEL has no effect on the callee end either,
since, from its point of view, the dialog has already transitioned into
confirmed state.
The problem I am running into a lot is that these dialogs stay tracked
up until the dialog timeout period, which can be several hours away. In
high-volume environments, they can clog up concurrent channel counts.
The receiving UAS has, of course, disposed of these dialogs long ago,
after 64*T1, but they remain "stuck" in Kamailio.
I know that RFC 3261 Section 13.3.1.4 ("The INVITE is Accepted") says:
If the server retransmits the 2xx response for 64*T1 seconds without
receiving an ACK, the dialog is confirmed, but the session SHOULD
be terminated. This is accomplished with a BYE, as described
in Section 15.
Now, I know that "SHOULD" != "MUST", and I would imagine that this is
probably the main reason why the dialog module does not time out such
dialogs according to the same timers as the callee UA might.
Nevertheless, they present a problem. Right now, I deal with it by using
a script that combs 'kamctl fifo dlg_list' for dialogs in 'state:: 3'
for more than X seconds and manually ends them.
But, when there's a problem that one runs into nearly ubiquitously in
all deployments with nontrivial deployments, it seems to me it's time to
consider an additional 'dialog' modparam or something of that ilk that
can provide an expedited timeout for nonacked dialogs.
I would be happy to write such a patch. The reason I am bringing it up
to the community is because I am uncertain as to whether this might have
any unforeseen consequences, or whether it's been discussed in various
dialog_ng discussions in the past that I have not carefully monitored.
Thanks!
-- Alex
(With apologies for cross-posting.)
[1] Or correctly associated based on tight matching.
--
Alex Balashov - Principal
Evariste Systems LLC
235 E Ponce de Leon Ave
Suite 106
Decatur, GA 30030
United States
Tel: +1-678-954-0670
Web: http://www.evaristesys.com/, http://www.alexbalashov.com/
Hello all,
Timer pl_timer in pipelimit.c is defined as MS_TO_TICKS(1500) instead of
timer_interval (in versions 3.3 - 4.1).
I found a patch that solves the same problem in the ratelimit module:
Module: sip-router
Branch: 3.1
Commit: f027ca95a2a1818cd40e4ed6d4358a76d18252ad
URL:
<http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=f027ca9
5a2a1818cd40e4ed6d4358a76d18252ad>
http://git.sip-router.org/cgi-bin/gitweb.cgi/...
Author: Marius Zbihlei
Committer: Marius Zbihlei
Date: Mon Apr 11 13:45:10 2011 +0300
modules/ratelimit Timer was ran at a 1.5 s interval instead of
timer_interval, thus rendering TAILDROP alg unusable
(cherry picked from commit 3a06d7d3561f889c84249eaa5ec7a5b79a2a23bd)
Regards,
Julia