Hi,
I want to implement the call control by
1. Validating the CLI and get the credit from DB
2. Check the Rate for the dialed number
3. set the call timeout for the call duration. ( credit/rate)
4. pass the call to remote PSTN GW
Please guide me on this.
Regards,
Roy.
Hi All,
I have around 300 AVP's and quite amount of VAR's are used in the config
file? Does that impact performance?, If so how can i improve it?
Thanks
Jijo
Hello,
thanks for reporting, I pushed a slightly different patch in master, 4.1
and 4.0 branches -- free is done even when ai->act is null.
Cheers,
Daniel
On 20/02/14 15:13, Surendra wrote:
> Hi Daniel,
>
>
> I am using async module to continue the transaction in
> asynchronously. But I am observing a leak in shared memory. Then i checked
> the code, we are not freeing the async_item_t after calling t_continue.
> Same this has checked with MEMDBG=1.
>
> Original code:
> while(1) {
> lock_get(&_async_list_head->ring[slot].lock);
> ai = _async_list_head->ring[slot].lstart;
> if(ai!=NULL)
> _async_list_head->ring[slot].lstart = ai->next;
> lock_release(&_async_list_head->ring[slot].lock);
>
> if(ai==NULL)
> break;
> if(ai->act!=NULL)
> tmb.t_continue(ai->tindex, ai->tlabel, ai->act);
> }
>
>
> Changed code:
>
> while(1) {
> lock_get(&_async_list_head->ring[slot].lock);
> ai = _async_list_head->ring[slot].lstart;
> if(ai!=NULL)
> _async_list_head->ring[slot].lstart = ai->next;
> lock_release(&_async_list_head->ring[slot].lock);
>
> if(ai==NULL)
> break;
> if(ai->act!=NULL)
> {
> tmb.t_continue(ai->tindex, ai->tlabel, ai->act);
> shm_free(ai); /* Added by surendra */
> }
> }
>
> Please correct this if I am wrong.
>
>
> Regards
> @surendra
>
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users(a)lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Hi All,
I installed Kamailio server on my ubuntu machine. And installed rtpproxy
also in the same machine. I didm't make many changes to default
configuration files, kamctlrc and kamailio.cfg. Now I am able to
communicate between two SIP clients, if both sip clients are in the same
LAN. But I am not able to communicate between one sip client in one LAN and
the other SIP client in other LAN. Sip Call handling and ringing etc. is ok
but there is no voice for this case.
I don't have much experience in routing for NAT traversal. I tried to
experiment with rtpproxy_manage function in kamailio.cfg file. But I was
not successful. Please help me by providing any hints or pointers to
proceed further. I am using only Kamailio and Rtpproxy. No other software
like Asterisk or FreeSwitch.
*************
These are defines I used in kamailio.cfg file:
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_ALIASDB
#!define WITH_USRLOCDB
#!define WITH_ANTIFLOOD
#!define WITH_NAT
#!define WITH_PRESENCE
listen ip address changed
*******************
Kamailio is compiled with following modules:
include_modules= db_mysql dialplan presence presence_xml
********
Regards,
Sateesh
Hi,
Following my issue with the above....
1. Is there a way to see if a worker (child) is processing a transaction
for too long (let's say 2-3 sec)?
2. Is there an option to see if the DB connection is alive? (I am
familiar with db_mysql options)
3. If all workers are stuck on this "long" transaction, is there a Q for
the new INVITES? Can I see how many are there?
What I was experiencing is that when my DB was very slow, kamailio crashed
after a while....
I will configure db_mysql to ping every 30 sec and timeout after 1 sec.
Still, it can create a 3 sec delay for transactions.
Any one has an idea?
Using the ASYNC module can help here? Does it free the worker to deal with
new requests?
BR,
Uri
Hi, All!
Try to register user in Kamailio and then relay REG massage to Asterisk.
Asterisk register user and looks good.
But when I send Unreg message to Kamailio, it unregister user successfully
but Asterisk say: Message REGISTER Ignoring because retransmit (CSeq 1234
our CSeq 1234).
Did someone know how solve this problem: i think that Asterisk need
different CSeq for first REGISTER and Second after 401 code.
dump my conf: At route[REGISTER]:
if (!save("location")) {
sl_reply_error();
} else {
reg_fetch_contacts("location", "$tu", "cc");
$var(useragent) = $ulc(cc=>user_agent);
xlog("L_INFO","EXpires in Contact:
$ulc(cc=>expires)");
if ($ulc(cc=>expires)==0) {
$var(query) = "insert into activity
values (now(),'unr','"+$ci+"','"+$fu+"');";
sql_query("events", "$var(query)");
$var(string_temp) = "$(hdr(expires))";
xlog("L_INFO", "UNregistered $ru FROM
$fu exp $var(string_temp)");
} else {
if ($var(registered)==0) {
$var(query) = "insert into activity
values (now(),'reg','"+$ci+"','"+$fu+"');";
sql_query("events", "$var(query)");
}
xlog("L_INFO", "Registered $ru FROM $fu
exp $ulc(cc=>expires)");
}
}
xlog("L_INFO","DU(TD): $td");
if ($td == "mydomain.com") {route(TOASTERISK); }
exit;
}
}
route[TOASTERISK] {
xlog("L_INFO","ROUTE to ASTERISK from $ru to $tu");
#append_branch();
t_on_failure("FAILAUTH");
$ru = "sip:"+ $td;
consume_credentials();
route(RELAY);
exit;
}
failure_route[FAILAUTH] {
if (t_is_canceled()) {
exit;
}
if (t_check_status("(401)|(407)")) {
xlog("L_INFO", "Remote asked for authentication");
$avp(realm)="";
uac_auth();
}
route(RELAY);
}
Hi Daniel,
I am using async module to continue the transaction in
asynchronously. But I am observing a leak in shared memory. Then i checked
the code, we are not freeing the async_item_t after calling t_continue.
Same this has checked with MEMDBG=1.
Original code:
while(1) {
lock_get(&_async_list_head->ring[slot].lock);
ai = _async_list_head->ring[slot].lstart;
if(ai!=NULL)
_async_list_head->ring[slot].lstart = ai->next;
lock_release(&_async_list_head->ring[slot].lock);
if(ai==NULL)
break;
if(ai->act!=NULL)
tmb.t_continue(ai->tindex, ai->tlabel, ai->act);
}
Changed code:
while(1) {
lock_get(&_async_list_head->ring[slot].lock);
ai = _async_list_head->ring[slot].lstart;
if(ai!=NULL)
_async_list_head->ring[slot].lstart = ai->next;
lock_release(&_async_list_head->ring[slot].lock);
if(ai==NULL)
break;
if(ai->act!=NULL)
{
tmb.t_continue(ai->tindex, ai->tlabel, ai->act);
shm_free(ai); /* Added by surendra */
}
}
Please correct this if I am wrong.
Regards
@surendra
Hi, how are you all
I have a lab setup for using Kamailio and asterisk, with realtime, and
currently I am facing 2 problems.
The first one, is when trying to get the phones to reboot. Asterisk send a
notify with the message, reboot. But the phone answers with a 401, and asks
for a digest.
In a normal asterisk environment it would not be a problem, asterisk tries
to answer with the user and password cipher with the digest. But because of
using this design, asterisk sends the notify with the user and blank
password (I am using realtime, so peers can register from kamailio with no
password).of course this makes that the phone refuses, as the notify
doesn't have the right password.
Is there any way to make kamailio intercept the notify sent from the phone
and answer with the right credentials?
_-------------------
Second:
When having the users registered in the same scenario, and get an asterisk
'reload', and the users try to make a call before they re-register, only
the first call make it thru
Of course, as kamailio is in the middle, the users doesnt notice until they
try to make a call.
In asterisk, I keep seeing the kamailio trying to register and getting a
404.
This keeps happening until I sent a sip reload at the asterisk side and
wait for the users to register before making calls.
Thanks for your time....
Dear List
I am trying to restrict 8 digit dial on my dialplan after the prefix 6859A
, could someone help me with the correct syntax?
Please see below what i have:
Dpid: 1
Pr: 1
Match Op: 1
Match Exp: sip:6859A(only 8 additional digits allowed).*
Match Len: 0
Subst Exp: sip:6859A(only 8 additional digits allowed).*
Repl Exp: 3005A1883(a)xx.xx.xx.xx
So basically any 8 digits after the prefix 6859A is allowed otherwise there
shouldn't be a match, how could i go about doing this?
Thanks in advance
Phillip