Hi List
Can someone please help me?
I need to implement PBX Services for a customer that has 10 IP Phones at his Main site and then 20 IP Phones located over 5 Branches.
My goal is to have RTP go end to end and not proxied.
I had a look at the below link and tried it, but with no luck.
http://kamailio.org/dokuwiki/doku.php/examples:caller-callee-behind-same-nat
Here is a partial output of my kamailio.cfg file if someone would be so kind to help me.
#!ifdef WITH_NAT
# ----- rtpproxy params -----
modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")
# ----- nathelper params -----
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)
modparam("nathelper", "sipping_from", "sip:pinger@x.x.x.x")
# params needed for NAT traversal in other modules
modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
modparam("usrloc", "nat_bflag", FLB_NATB)
#!endif
####### Routing Logic ########
# Main SIP request routing logic
# - processing of any incoming SIP request starts with this route
route {
# per request initial checks
route(REQINIT);
# NAT detection
route(NAT);
# Caller NAT detection route
route[NAT] {
#!ifdef WITH_NAT
force_rport();
if (nat_uac_test("19")) {
if (method=="REGISTER") {
fix_nated_register();
} else {
fix_nated_contact();
}
setflag(FLT_NATS);
}
#!endif
return;
}
# RTPProxy control
route[RTPPROXY] {
#!ifdef WITH_NAT
if (is_method("BYE")) {
unforce_rtp_proxy();
} else if (is_method("INVITE")){
force_rtp_proxy();
}
if (!has_totag()) add_rr_param(";nat=yes");
#!endif
return;
}
Thank you in advance
Kind Regards
Deon
Hello,
I have committed some code to allow easier troubleshooting and
monitoring of PKG usage per process.
One new functions are exported by cfgutils module:
- pkg_summary() - can be used to dump summary of PKG usage
Btw, there was also added shm_summary() that dumps the summary of SHM usage.
The kex module exports a new rpc command 'pkg.stats' that prints PKG
usage metrics (used, free, real_used) per process. Here is a sample output:
sercmd> pkg.stats
{
entry: 0
pid: 4793
rank: 0
used: 124788
free: 3813512
real_used: 380792
}
{
entry: 1
pid: 4794
rank: 1
used: 132740
free: 3805512
real_used: 388792
}
{
entry: 2
pid: 4795
rank: 2
used: 132740
free: 3805512
real_used: 388792
}
The adding free to real_used values results in pkg memory size per
process (4MB in this example).
To get these stats, you have to compile with MALLOC_STATS enabled (this
is default for Kamailio, so nothing actually to do for it).
One benefit of this pkg.stats is ability to monitor usage of private
memory and trigger alerts if the amount of available memory (free) for
one process goes below a lower limit, useful when there is a memory leak
(so you restart in time and report the problem) or the config operations
for given traffic needs larger PKG size.
In the near future there will be some new additions to be able to access
these values also via PVs.
Testing and feedback is appreciated.
Cheers,
Daniel
--
Daniel-Constantin Mierla
Kamailio (OpenSER) Advanced Training
Jan 24-26, 2011, Irvine, CA, USA
http://www.asipto.com
Can you tell me please what can I do to change the port on SER because I
installed on Asterisk and SER listen on port 5060 right? so it blocked
Asterisk when is running, please tell me how can I fix this problem.
Regards.
Well I finally made some progress. I have Kamailio 3.1.0 installed on one
server and Elastix 2.0.3 installed on another server. The Kamailio server
queries Elastix for authentication, and the SIP clients are able to register
with Kamailio. However, the clients cannot call each other.
Also, extensions added in the Elastix interface cannot authenticate with
Kamailio. I have to manually add the users in the Asterisk database using
mysql commands to get the authentication to work. I will need to use a GUI
for staff to add / delete numbers.
Am I way off base here?
Kurt Mullen
When attempting to run :
/usr/local/sbin/kamdbctl create
I get the following results:
/usr/local/lib/kamailio//kamctl/kamdbctl.mysql: line 155:
/usr/local/share/kamailio//mysql/#-create.sql: No such file or directory
ERROR: Creating core tables failed!
Contents of directory:
root@Kamailio:/usr/local/share/kamailio/mysql# ls
acc-create.sql drouting-create.sql purple-create.sql
alias_db-create.sql group-create.sql registrar-create.sql
auth_db-create.sql htable-create.sql rls-create.sql
avpops-create.sql imc-create.sql siptrace-create.sql
carrierroute-create.sql lcr-create.sql speeddial-create.sql
cpl-create.sql matrix-create.sql standard-create.sql
dialog-create.sql msilo-create.sql uac-create.sql
dialplan-create.sql mtree-create.sql uri_db-create.sql
dispatcher-create.sql pdt-create.sql userblacklist-create.sql
domain-create.sql permissions-create.sql usrloc-create.sql
domainpolicy-create.sql presence-create.sql
Contents of kamdbctl.mysql
# path to the database schemas
DATA_DIR="/usr/local/share/kamailio/"
if [ -d "$DATA_DIR/mysql" ] ; then
DB_SCHEMA="$DATA_DIR/mysql"
else
DB_SCHEMA="./mysql"
Fi
for TABLE in $STANDARD_MODULES; do
mdbg "Creating core table: $TABLE"
sql_query $1 < $DB_SCHEMA/$TABLE-create.sql
if [ $? -ne 0 ] ; then
merr "Creating core tables failed!"
exit 1
fi
done
Kurt Mullen
is there a means to test method of sip request against a pseudo
variable, which would contain an integer bitmap of methods corresponding
to enum request_method values?
-- juha
Hello,
I want to ask if you know any possibility in changing the text of the SIP
reason header in CANCEL requests. Is the limitation still the same as
described in the mail below from May 2010?
For my scenario I have to use the TM module, because incoming requests
from the PSTN gateway are parallelly forked to two destinations. Whenever
the pending call is cancelled by the PSTN gateway the CANCEL request is
still containing a reason header (Q.850;cause=16). But I would like to
adapt the text of this header according RFC3326 (e.g. 'Reason: SIP
;cause=487 ;text="Request Terminated"'). The feature "e2e-cancel-reason"
is working fine - the original text is copied, but no textops function can
make any change.....
Is there any trick possible to change the text of this header before it is
handled by the proxy (e.g. in creating a spirale - change the text and
forward it to the same proxy again)?
Or in worst case if this is currently absolutely impossible - would this
be an acceptable request for a new feature in any upcoming release of
Kamailio 3.1.x? In the release 3.1.x it is still possible to store the
text of an incoming reason header, so I guess it could be no problem in
overwriting this text with any function...... Is anybody else interested
in this feature?
regards,
Klaus
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Am 21.05.2010 09:26, schrieb François BERGANZ:
When I use forward, it doesnt work!
I don't know how to do
It works fine for me:
route{
if (is_method("CANCEL")) {
if (!is_present_hf("Reason")) {
xlog("L_ERR", "reason missing");
append_hf("Reason: Q.850; cause=31\r\n");
xlog("L_ERR", "Reason added");
}
forward();
exit;
}
Note: above code snippet only works if the proxy does not do any parallel
forking of the INVITE. It may also be necessary to change the request-URI
to forward the request to the same destination as the INVITE.
in:
U 2010/05/21 10:29:38.372934 83.136.33.3:16534 -> 88.198.53.113:5060
CANCEL sip:01505641...@83.123.45.165 SIP/2.0
Via: SIP/2.0/UDP
10.10.0.51:16534;branch=z9hG4bK-d8754z-7b591160b17cfc57-1---d8754z-;rport
To: "01505641636"<sip:01505641...@83.123.45.165>
From: <sip:kl...@83.123.45.165>;tag=7c681960
Call-ID: MzcxYTgzZmIwMGYyMTA4YzVkN2IzZDhjYjhjYjYwNTk.
CSeq: 2 CANCEL
User-Agent: eyeBeam release 1102q stamp 51814
Content-Length: 0
out:
U 2010/05/21 10:29:38.373331 88.198.53.113:5060 -> 83.123.45.165:5060
CANCEL sip:01505641...@83.123.45.165 SIP/2.0
Via: SIP/2.0/UDP
88.198.53.113;branch=z9hG4bK-d8754z-7b591160b17cfc57-1---d8754z- Via:
SIP/2.0/UDP
10.10.0.51:16534;received=83.136.33.3;branch=z9hG4bK-d8754z-7b591160b17cfc57-1---d8754z-;rport=16534
To: "01505641636"<sip:01505641...@83.123.45.165>
From: <sip:kl...@83.123.45.165>;tag=7c681960
Call-ID: MzcxYTgzZmIwMGYyMTA4YzVkN2IzZDhjYjhjYjYwNTk.
CSeq: 2 CANCEL
User-Agent: eyeBeam release 1102q stamp 51814
Content-Length: 0
Reason: Q.850; cause=31
regards
Klaus
Hi Andrei,
I'm observing TCP Recv buffer getting full when we are doing a load run
(30cps) on Proxy with TCP. Basically the congestion is happening on the TCP
connection from SIP Server to Proxy. I beleive kamailio is not processing
the message fast enough, due to this congestion is occuring. Did anyone
observe this behavior? How do we resolve it?
Thanks
Jijo
Hi folks,
Getting ready to stage my 1.4.2 upgrade to 3.1.1 - but apparently I am
missing something pretty basic here as I can't get a test subscriber
registered. Turned up debug and viewed the "401 Unauthorized" repeating
messages.
So I combed back through the INSTALL and the various references on
kamailio.org. And for full disclosure, here are the relevant steps that I
have took:
Did a make clean on the source and re-did the make, which looks like:
make FLAVOUR=kamailio group_include="standard mysql"
include_modules="carrierroute acc mi_fifo kex tmx pv siputils mi_rpc" cfg
all install
Added my domain into kamctlrc.
Created a fresh DB, started up kamailio and added a user:
[root@qa-voip-01 kamailio-3.1.1]# kamctl add testnumber testpass
new user 'testnumber' added
Made the appropriate changes to the default kamailio.cfg by adding in the
defines. Restarted kamailio - no errors and all looked good.
At this point, all indications would think that I can get the subscriber
registered and get the location table updated ... But no such luck:
[root@qa-voip-01 kamailio]# kamctl ul show
Domain:: location table=512 records=0 max_slot=0
Any thoughts on where to look? I have confirmed that the subscriber device
is using the right credentials. Using plaintext and the password is in
user's row in the subscriber table.
I am sure it's something pretty basic; this is my first stab at 3.1 from my
1.4 production machines.
Thanks,
-graham