I also confirm the cdr_on_create() [acc_cdr.c:718] function is called since
I can see the debug statement "dialog '%p' created!".
From: Mickael Marrache [mailto:mickaelmarrache@gmail.com]
Sent: Wednesday, April 15, 2015 3:48 PM
To: sr-users(a)lists.sip-router.org
Subject: No CDR is written when dialog timeouts
Hi,
I'm testing the dialog timeout scenario and I see that no CDR is written.
This is my configuration:
modparam("acc", "cdr_enable", 1)
modparam("acc", "cdr_expired_dlg_enable", 1)
modparam("acc", "cdr_start_on_confirmed", 1)
modparam("acc", "cdr_log_enable", 0)
modparam("acc", "cdr_on_failed", 0)
I can confirm the cdr_on_expired() [acc_cdr.c:684] function is not called
since I don't see the debug statement "dialog '%p' expired!\n".
(I precise that CDR generation works fine for regular hangup scenario.)
Any idea what can cause the issue?
Thanks,
Mickael
Hi,
I'm testing the dialog timeout scenario and I see that no CDR is written.
This is my configuration:
modparam("acc", "cdr_enable", 1)
modparam("acc", "cdr_expired_dlg_enable", 1)
modparam("acc", "cdr_start_on_confirmed", 1)
modparam("acc", "cdr_log_enable", 0)
modparam("acc", "cdr_on_failed", 0)
I can confirm the cdr_on_expired() [acc_cdr.c:684] function is not called
since I don't see the debug statement "dialog '%p' expired!\n".
(I precise that CDR generation works fine for regular hangup scenario.)
Any idea what can cause the issue?
Thanks,
Mickael
Is there an easy way to figure out on which server a uac is registered when
using a shared database (modparam("usrloc", "db_mode", 3)).
When uac1 is registered on server1 (dns srv loadbalancing) and uac2 is on
server2. A call from uac1 to uac2 with a simple lookup("location") will result
in server1 directly trying to connect to uac2. If this device is natted (or
behind a stateful firewall) this will fail.
In the location table the column socket contains the server which received the
request. So if I know this value I can have server2 route the call to this
value/server and have the call delivered to uac1 via an "existing connection".
The idea was to use reg_fetch_contacts to fetch this/these socket values in
$ulc and in case they are not local redirect/branch to those servers. But if
the value of socket isn't local the $ulc for socket is null.
I could use sqlops to fetch this manually, but is there an easier way I am
missing?
Hi,
I sometimes get the following errors:
kamailio[16098]: ERROR: <core> [resolve.c:1693]: sip_hostport2su(): could
not resolve hostname: "mycompany.com"
kamailio[16098]: ERROR: tm [ut.h:319]: uri2dst2(): failed to resolve
"mycompany.com"
mycompany.com cannot be resolved using DNS (there is no corresponding DNS
entry). I use this as a logical domain and I don't expect Kamailio to
resolve it. Also, I set use_domain (usrloc module) to 0 so only the RURI
username is used when searching locations.
The flow is as follows:
-the proxy receives the INVITE with sip:
<sip:%3cuser%3e@myloadbalancerip:5060> <user>@myloadbalancerip:5060 which
then forwards the INVITE to a proxy
-the proxy looks for <user> internally and finds that this user has multiple
subscribers (endpoints)
-for each subscriber, a branch is appended using append_branch (or the RURI
is replaced for the first subscriber) - the new RURI for each branch is sip:
<sip:%3csubscriber%3e@mycompany.com> <subscriber>@mycompany.com
-finally, lookup_branches is called to look for locations for every
subscriber
lookup_branches only uses the subscriber (RURI username) for searching
locations since use_domain is set to 0.
However, I sometimes get the errors I mentioned.
Any idea why Kamailio sometimes tries to resolve the domain name?
Thanks,
Mickael
Hello,
I got many errors like this one:
ERROR: tm [tm.c:1192]: t_protoaddr2proxy(): tm: protoaddr2proxy: host name
is empty
It looks to be while I'm doing a sl_send_reply but I don't figure out why.
Someone know what going wrong?
Regards,
Igor.
Hello everyone,
I have a SIP provider that gives me access to different routes over the
same IP address but different prefixes.
I have to send all calls to the same IP but I need to inlcude a prefix to
allow vendor to route calls to different carriers.
I will use carrierroute (cr) module and in case prefix 1 fails, I should
send the call to prefix 2 and so on.
The problem I have is cr module detects that this host (public vendor ip)
was already used and I am getting this warning:
NOTICE: carrierroute [cr_func.c:324]: cr_uri_already_used(): Candidate
destination
This machine use public DNS and I tried to set up 3 entries in /etc/hosts
public_iP vendor_1
public_iP vendor_2
public_iP vendor_3
and instead of using the IP in rewrite_host I changed to the name:
vendor_1, vendor_2. vendor_3
but I got error: ERROR: tm [ut.h:337]: uri2dst2(): failed to resolve
"vendor_1"
Is there a better war to resolve this
Thank you in advance
Respected sir,
I want to configure SIP voip server using tutorial (
http://kb.asipto.com/kamailio:skype-like-service-in-less-than-one-hour). i
have configured everything on my ubuntu server as given in tutorial. but i
am getting error while running start command ( /etc/init.d/kamailio start)
the error as given below.
root@wifi:/etc/kamailio# /etc/init.d/kamailio start
* Not starting Kamailio SIP Server: invalid configuration file!
*
* 0(32729) INFO: tls [tls_init.c:401]: init_tls_compression(): tls:
init_tls: disabling compression...
0(32729) ERROR: <core> [cfg.y:3288]: yyparse(): cfg. parser: failed to
find command force_rtp_proxy (params 0)
0(32729) : <core> [cfg.y:3428]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 729, column 19: unknown command, missing
loadmodule?
0(32729) ERROR: <core> [cfg.y:3288]: yyparse(): cfg. parser: failed to
find command force_rtp_proxy (params 0)
0(32729) : <core> [cfg.y:3428]: yyerror_at(): parse error in config file
/etc/kamailio/kamailio.cfg, line 806, column 19: unknown command, missing
loadmodule?
ERROR: bad config file (2 errors)
i have tried running using default kamailio.cfg then it works fine. but i
want to configure using script uploaded by u. please do the needful. i will
be very thankful to you.
With regards,
Satish verma,
Programming Assistant,
UIET, Panjab University,
Chandigarh. Mobile no +917307737732
I created a pull request that I tested using MongoDB.
It works fine.
Let me know if I can help more.
Mickael
From: Mickael Marrache [mailto:mickaelmarrache@gmail.com]
Sent: Monday, April 13, 2015 5:13 PM
To: miconda(a)gmail.com; 'Kamailio (SER) - Users Mailing List'
Subject: RE: [SR-Users] CDR fields are all strings
We are using MongoDB and all the values are inserted as strings.
I also tried using the time_mode and time_format parameters, but it looks
like they are only relevant for transactions accounting.
Regarding the duration, it is set as a string for any backend.
I think this behavior strongly limits us (and probably others) performing
queries on CDRs (especially queries based on start and end time).
Mickael
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of
Daniel-Constantin Mierla
Sent: Monday, April 13, 2015 3:03 PM
To: Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] CDR fields are all strings
Hello,
On 13/04/15 11:48, Mickael Marrache wrote:
Hi,
Why are all the CDR fields inserted as strings?
For extra fields, I can understand it is easier to implement. However, for
the built in fields (e.g. duration), we need to perform queries based on
duration and time and it is not really possible using strings.
Dialog variables hold only strings and those values are stored in variables,
iirc -- that was the design behind the concept done by initial developer.
Perhaps they can be easily updated to hold integers.
Anyhow, iirc, at least with mysql it should work to insert any value
enclosed in quotes, not matter the field type. For datetime that is
acutually the default -- to use quotes, afaik. So if you change the types of
columns, it should just work.
We can push a patch if most of the people think is better to use different
column types.
Cheers,
Daniel
I see that the time field for failed transactions is inserted as a date.
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany - http://www.kamailioworld.com
Hi All,
I've started to play with presence module on kamailo 4.1.6, everything seems to work quite well
up to now except one thing. I would like to notify the presence status of a NOT currently registered AoR as
not online instead of not present.
How can I do that?
Thanks in advance,
Roberto Fichera.
Hi everyone,
I've sent my request on the rtpproxy google group without answer so try
here.
I'm using Kamailio 4.2.3 (and few older versions) with the new release of
rtpproxy.
I can't get the info of a session timeout (-n or -i options) from rtpproxy
to my Kamailio proxy, using -n and the timeout socket.
I tried:
- Kamailio side: *modparam("rtpproxy", "timeout_socket",
"unix:/var/run/rtpproxy_timeout.sock")*
- rtpproxy side: *-n **unix:/var/run/rtpproxy_timeout.sock*
and other configuration like tcp, or udp socket, but nothing is happening
on the Kamailio part.
The Kamailio rtpproxy man page give the example: *modparam("rtpproxy",
"timeout_socket", "xmlrpc:http://127.0.0.1:8000/RPC2
<http://127.0.0.1:8000/RPC2>")*
Does it mean Kamailio only handles XMLRPC socket ? In this case, is
rtpproxy able to handle XMLRPC (I remember a patch in an older rtpproxy
version)
In the case Kamailio could handle other socket types, which one could allow
me to get a session timeout signal from rtpproxy in order to generate BYE
message at the signalling side ?
I could add that rtpproxy stops well RTP sessions that timed out.
Regards,
Igor Potjevlesc