I've started adding sip_trace to my kamailios, and mostly have it
working, but cannot figure out how to capture the outgoing calls
from uac_reg.
I had to add:
reply_route {
sip_trace();
}
onsend_route {
sip_trace();
}
to capture those packets. What *_route {} does uac_reg target for its
outgoing packets?
I read uac_reg.[ch], and see that it uses the t_request method from
tm's struct tm_binds. And that the methods are defined via a call
to load_tm_api(), and that t_request defaults to the request() function
in tm/uac.c.
But I don't see from that which route chunk it uses.
-JimC
--
James Cloos <cloos(a)jhcloos.com> OpenPGP: 0x997A9F17ED7DAEA6
Hello All,
I am getting the below error , when ever i try to use json.so module for
kamailio. I have compiled and installed with json.so however this error
occurs.
0(20153) ERROR: <core> [sr_module.c:576]: load_module(): could not open
module </usr/local/kamailio//lib64/kamailio/modules/json.so>:
/usr/local/kamailio//lib64/kamailio/modules/json.so: undefined symbol:
is_error
0(20153) : <core> [cfg.y:3365]: yyerror_at(): parse error in config file
/usr/local/kamailio/etc/kamailio/cc_kamailio/basic.cfg, line 69, column
12-20: failed to load module
ERROR: bad config file (1 errors)
The kamailio version I am using is :
version: kamailio 4.4.0-pre0 (x86_64/linux) 4e7573
Please let me know, how can i proceed here.
Thanking You,
Sunil More
Ph : 9503338275
Hi there,
New user to Kamailio here. We currently have it up and running in a virtualized environment with 1 Kamailio sever, 1 Asterisk server and 1 MySQL server.
I'm currently writing install scripts to make deploying new nodes/servers easy and to keep settings the same across the board. I've chosed to load the db_cluster.so module in kamailio.cfg, as we will have 2x MySQL servers in master-master replication which will contain the 'kamailio' and 'asterisk' tables.
I've just hit a stumbling block - in `kamctlrc`, there is a field called `DBHOST=`. How can I reference my cluster here?
In kamailio.cfg, I simply define DBURL as "cluster//<clustername>". What is the syntax for 'DBHOST=' in 'kamctlrc'? Can I reference the cluster? Can I have 2 separate DBHOST= lines?
Looking for some guidance on this one.
Thanks,
Derek B.
Hi,
Today I download the source codes in version 4.3 by git, and compile and install it. I configure the kamctlrc and kamailio.cfg, but I can't start it, Please refer to following error.
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: db_mysql [km_dbase.c:124]: db_mysql_submit_query(): driver error on query: Table 'kamailio.version' doesn't exist (1146)
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: <core> [db_query.c:132]: db_do_query_internal(): error while submitting query
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: <core> [db.c:397]: db_table_version(): error in db_query
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: <core> [db.c:436]: db_check_table_version(): querying version for table location
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: usrloc [dlist.c:642]: register_udomain(): error during table version check.
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: registrar [reg_mod.c:561]: domain_fixup(): failed to register domain
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: <core> [route.c:1154]: fix_actions(): fixing failed (code=-1) at cfg:/usr/local/etc/kamailio//kamailio.cfg:647
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: ERROR: <core> [route.c:1154]: fix_actions(): fixing failed (code=-1) at cfg:/usr/local/etc/kamailio//kamailio.cfg:649
Feb 21 21:47:36 ubuntu /usr/local/sbin/kamailio[13672]: INFO: <core> [sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized
--
Best Regards,
Shengy
Hi Cristina,
> But I have another problem related to registration process. After REGISTER-
> 401 Unauthorized-REGISTER-200 OK, the IMS client sends the SUBSCRIBE
> message (for the "reg" event package subscription) to the S-CSCF, the latter
> replies with NOTIFY and the client correctly responds with 200 OK. In order to
> be notified on any change of registration state for the client, also the P-CSCF
> sends the SUBSCRIBE message to the S-CSCF, the S-CSCF sends a NOTIFY to
> the proxy but, instead of replying with 200 OK, the P-CSCF replies with 404-
> Not Here (like it doesn't recognize that the recipient of the NOTIFY in the
> Req-URI is the P-CSCF itself).
>
> Have you ever seen similar issue?
I have now spent some time to reproduce the issue.
First of all: I had to adapt module reg_mod.c in ims_registrar_pcscf, because it containes a hardcoded P-CSCF address:
str pcscf_uri = str_init("sip:pcscf.ims.smilecoms.com:4060");
which is only valid for smilecoms.
Did you also change that?
Then I got exactly the same problem. I found that the P-CSCF config causes in the part "# Check for Subsequent requests:" a reject " sl_send_reply("404","Not here");"
I have doubts that this is correctly designed and have to dig deeper into the logic of the config-file.
Fact is: the NOTIFY request does not contain a Route header and as it not an ACK it goes straight to the reject.
Maybe any IMS expert can shed some light on this code as shown below:
# Check for Subsequent requests:
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if ($route_uri =~ "sip:mo@.*") {
setflag(FLT_MO);
}
if(!isdsturiset()) {
handle_ruri_alias();
}
# RTP-Relay, if necessary
route(RTPPROXY);
t_relay();
} else {
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# no loose-route, but stateful ACK;
# must be an ACK after a 487
# or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching transaction ... ignore and discard
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
BR Franz
Hi everyone,
I am curious if there is a way to make SIP session between two kamailio
server instances eg. if there is way to use kamailio as an SIP client and
SIP server at the same time.
I am thinking about the following configuration:
kamailio main server ----- kamailio server B ----- SIP client B1
|
|
|
kamailio server A ----- SIP client A2
|
|
|
SIP client A1
I want to be able to make SIP session between:
SIP client A1 : SIP client A2
kamailio server A : kamailio server B
SIP client A1 : SIP client B1 (this would be great)
If there is currently no way to do this do you think that it would be
possible to create the module which will support this kind of functionality?
Thanks in advance for the replies
Hi All,
If the client is forcely closed, the client will be shown as online state in kamailio when I run the command: "kamctl online". How long will be the client online since client is closed? Thank you.
--
Best Regards,
Shengy
Hello Cristina,
> In the attach you can find the trace of the registration.
I have checked your tracefile and confirm: that is a problem which needs further debugging.
Up to now I did not activate "WITH_REGINFO" in my installation, therefore I cannot compare.
If I find time (this weekend) I will do that and come back with the findings.
BR Franz
Hello,
wondering if people feel it is need to polish the current default
kamailio.cfg, to prepare the version for next major release. It can be
browsed online at:
- https://github.com/kamailio/kamailio/blob/master/etc/kamailio.cfg
It is mainly about very common scenarios that are encountered out there
and we should deal with by default. Have in mind that there are the
basic and advanced versions of kamailio.cfg in the etc folder. Also, I
am looking for tunings for core parameters and module parameters that
make the config more suitable for common use case.
Speaking of those extra config files, I think the kamailio-advanced.cfg
and kamailio-basic.cfg should be deployed in shared doc folder, not
being active configs upon default installation.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.comhttp://miconda.eu