Hello,
I am trying to configure kamailio as an LCR based on prices but also
signaling quality indicators like ASR and ACDR.
Can you please help me and tell me where to start?
Regards
Abdoul
Hi all,
i have a problem with kamailio 5.3.x and asterisk 13, i basically forward
everything, but i cant manage to make it register.
The register arrives on asterisk see the capture bellow:
Any help is much appreciated!
----------------
REGISTER sip:oro.sips.nl;transport=UDP SIP/2.0
Via: SIP/2.0/UDP
104.201.100.15;branch=z9hG4bK4d5e.997621d931a2ad9f6423e2ac7782a319.1
Via: SIP/2.0/UDP 34.12.55.102:34626
;received=34.12.55.102;branch=z9hG4bK-524287-1---0a0bffd64bbd9941;rport=34626
Max-Forwards: 69
Contact: <sip:test-user1@34.12.55.102:34626
;transport=UDP;rinstance=85c33e976be3dad1>
To: <sip:test-user1@oro.sips.nl;transport=UDP>
From: <sip:test-user1@oro.sips.nl;transport=UDP>;tag=6d8fd914
Call-ID: h6lkViFgxurpVRkw4Ly-GQ..
CSeq: 1 REGISTER
Expires: 60
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO,
SUBSCRIBE
User-Agent: Z 5.4.9 rv2.10.11.7
Allow-Events: presence, kpml, talk
Content-Length: 0
Path: <sip:104.201.100.15;lr;received=sip:34.12.55.102:34626>
-------------------the config -------
# - flags
# FLT_ - per transaction (message) flags
# FLB_ - per branch flags
#!define FLT_ACC 1
#!define FLT_ACCMISSED 2
#!define FLT_ACCFAILED 3
#!define FLT_FS 10
####### Global Parameters #########
debug=4
log_stderror=yes
memdbg=5
memlog=5
log_facility=LOG_LOCAL0
fork=yes
children=4
/* comment the next line to enable TCP */
disable_tcp=yes
/* uncomment the next line to disable the auto discovery of local aliases
based on revers DNS on IPs (default on) */
auto_aliases=no
/* add local domain aliases */
# alias="mysipserver.com"
port=5060
/* uncomment and configure the following line if you want Kamailio to
bind on a specific interface/port/proto (default bind on all available)
*/
# listen=udp:127.0.0.1:5060
sip_warning=no
####### Modules Section ########
# set module path
#mpath="/usr/local/lib/kamailio/modules/"
#loadmodule "db_mysql.so"
loadmodule "jsonrpcs.so"
loadmodule "kex.so"
loadmodule "corex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "acc.so"
loadmodule "dispatcher.so"
loadmodule "path.so"
# ----------------- setting module-specific parameters ---------------
# ----- jsonrpcs params -----
modparam("jsonrpcs", "pretty_format", 1)
# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 0)
# ----- acc params -----
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
modparam("acc", "log_extra",
"src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")
# ----- tm params -----
modparam("tm", "fr_timer", 2000)
modparam("tm", "fr_inv_timer", 40000)
# ----- dispatcher params -----
#modparam("dispatcher", "db_url", DBURL)
#modparam("dispatcher", "table_name", "dispatcher")
modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.list")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "xavp_dst", "_dsdst_")
modparam("dispatcher", "xavp_ctx", "_dsctx_")
modparam("dispatcher", "ds_ping_from", "sip:proxy@mykamailio")
modparam("dispatcher", "ds_ping_interval", 30)
modparam("dispatcher", "ds_probing_threshold", 10)
modparam("dispatcher", "ds_inactive_threshold", 5)
modparam("dispatcher", "ds_ping_reply_codes",
"class=2;code=403;code=488;class=3")
modparam("dispatcher", "ds_probing_mode", 1)
modparam("path", "use_received", 1)
####### Routing Logic ########
# main request routing logic
request_route {
# per request initial checks
route(REQINIT);
if(ds_is_from_list()) {
setflag(FLT_FS);
}
# CANCEL processing
if (is_method("CANCEL")) {
if (t_check_trans()) {
route(RELAY);
}
exit;
}
# handle retransmissions
if (!is_method("ACK")) {
if(t_precheck_trans()) {
t_check_trans();
exit;
}
t_check_trans();
}
# handle requests within SIP dialogs
route(WITHINDLG);
if (isflagset(FLT_FS)) {
route(FROM_FS);
exit;
}
### only initial requests (no To tag)
# record routing for dialog forming requests (in case they are routed)
# - remove preloaded route headers
remove_hf("Route");
if (is_method("INVITE|SUBSCRIBE")) {
record_route();
}
# account only INVITEs
if (is_method("INVITE")) {
setflag(FLT_ACC); # do accounting
}
# handle presence related requests
route(PRESENCE);
# handle registrations
route(REGISTRAR);
if ($rU==$null) {
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
# dispatch destinations
route(DISPATCH);
}
route[FROM_FS]
{
record_route();
route(RELAY);
exit;
}
route[RELAY] {
if (!t_relay()) {
sl_reply_error();
}
exit;
}
# Per SIP request initial checks
route[REQINIT] {
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if(!sanity_check("1511", "7")) {
xlog("Malformed SIP message from $si:$sp\n");
exit;
}
}
# Handle requests within SIP dialogs
route[WITHINDLG] {
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
}
route(RELAY);
} else {
if (is_method("SUBSCRIBE") && uri == myself) {
# in-dialog subscribe requests
route(PRESENCE);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# non loose-route, but stateful ACK;
# must be 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;
}
}
# Handle SIP registrations
route[REGISTRAR] {
if(!is_method("REGISTER"))
return;
add_path_received();
route(DISPATCH);
}
# Presence server route
route[PRESENCE] {
if(!is_method("PUBLISH|SUBSCRIBE"))
return;
sl_send_reply("404", "Not here");
exit;
}
# Dispatch requests
route[DISPATCH] {
# round robin dispatching on gateways group '1'
switch ($fd){
case "oro.sips.nl":
send_reply(483, "Ok, Skipper!");
if (!ds_select_dst("1", "4")) {
log("ERROR: no active destinations found!\n");
send_reply(503, "Service Unavailable");
exit;
}
ds_select_dst("1", "4");
log("---- flag value is $dd -- branch $fd \n");
xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
break;
case "oro2.sips.nl":
send_reply(483, "Ok, Skipper!");
if (!ds_select_dst("2", "4")) {
log("ERROR: no active destinations found!\n");
send_reply(503, "Service Unavailable");
exit;
}
ds_select_dst("2", "4");
log("---- flag value is $dd -- branch $fd \n");
xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
break;
default:
log("unknow destination?");
send_reply(503, "No service defined");
exit;
}
xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
# Try next destionations in failure route
failure_route[RTF_DISPATCH] {
if (t_is_canceled()) {
exit;
}
# next DST - only for 500 or local timeout
if (t_check_status("500")
or (t_branch_timeout() and !t_branch_replied())) {
if(ds_next_dst()) {
xdbg("--- SCRIPT: retrying to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
}
Hello All
I configure my kamailio.cfg to handle SLA using (SCA module) and shared
presence is working but still facing some issue in case of hold invite and
BYE and the reason behind of that issue is following error
Nov 26 07:38:40 SBC-4-1 /usr/local/sbin/kamailio[104107]: ERROR: sca
[sca_call_info.c:1008]: sca_call_info_invite_request_handler(): Failed to
update sip:4569@test.sip.abcd.com appearance-index 0 to active
actually, in Kamailio appearances, I can see the entry for this call but
the index is 1 instead of 0, and Kamailio going to update with a 0 index
[root@SBC-4-1 ntcarfte-kamailio]# kamcmd sca.all_appearances
sip:4569@test.sip.abcd.com 1 active 1606376289
sip:4569@10.xx.xx.xx:5070;transport=udp
sip:2003@test.sip.abcd.com
186161_mobile-rel120MTQ5OTcyZjFhMjMyNmI1ZGE1MWY4ODc2M2RkN2VmZmQ 45dc18d8
H6cS9vecZ248B
if I manually update appearances using RPC command with index 1 then the
phone started blinking as I change state to held
# kamcmd sca.update_appearance sip:4569@sc4test.sip.teledge.com 1 held
# kamcmd sca.all_appearances
sip:4569@test.sip.abcd.com 1 held 1606376516
sip:4569@10.xx.xx.xx:5070;transport=udp
sip:2003@test.sip.abcd.com
186161_mobile-rel120NzE5MDgyZDc1NjJiYjcwMWFlYmI3NzM3NjE2OTRhZjU 08f005cb
eK9ratm83g92e
kamailio.cfg
route[SCA] {
if(is_method("SUBSCRIBE")) {
if ($hdr(Event) == "call-info" || $hdr(Event) ==
"line-seize") {
xlog("L_INFO","(MAIN) :HELLO ($avp(uuid)) : $avp(rsi) $sp
$hdr(Event)");
xdbg("SCA: $hdr(Event) SUBSCRIBE $ru from $si:$sp");
sca_handle_subscribe();
exit;
}
return;
}
if (!is_method("BYE|CANCEL|INVITE|PRACK|REFER")) {
return;
}
sca_call_info_update();
}
route[RELAY_OUTBOUND_FS] {
xlog("L_INFO","(RELAY_OUTBOUND_FS) : ($avp(uuid)) : INSIDE ROUTE ");
if (!has_totag()){
$avp(set_h) = 1;
}
t_on_reply("REPLY_OUTBOUND_FS");
route(SCA);
if (!t_relay()) {
sl_reply_error();
}
exit;
}
route[RELAY_INBOUND_FS] {
if(is_method("INVITE|BYE|UPDATE|CANCEL|ACK")) {
$avp(s:puburis_caller) = $fu;
setflag(8);
dlg_manage();
}
if(is_method("REGISTER")) {
t_on_reply("REPLY_REGISTER");
} else {
t_on_reply("REPLY_INBOUND_FS");
}
route(SCA);
if (!t_relay()) {
sl_reply_error();
}
exit;
}
onreply_route[REPLY_INBOUND_FS] {
xdbg("incoming reply\n");
if (status =~ "[456][0-9][0-9]") {
# don't update SCA state here, since there may be
# failure route processing (e.g., call forwarding).
# update state in failure route instead.
return;
}
route(SCA);
}
onreply_route[REPLY_OUTBOUND_FS] {
xdbg("incoming reply\n");
if (status =~ "[456][0-9][0-9]") {
# don't update SCA state here, since there may be
# failure route processing (e.g., call forwarding).
# update state in failure route instead.
return;
}
route(SCA);
}
can someone help me with this Did I missed something to handle SLA?
--
--
Regards,
*Aatif Shaikh *| Software Developer
+91 9033976268Hangout: aatif.shaikh(a)ecosmob.comSkype :
aatif.shaikh(a)ecosmob.com
*Ecosmob Technologies Pvt. Ltd. *
https://www.ecosmob.com
VoIP | Web | Mobile | IoT | Big Data
<https://twitter.com/ecosmob> <https://www.facebook.com/Ecosmob>
<https://plus.google.com/+Ecosmob>
<https://www.linkedin.com/company/ecosmob>
<https://in.pinterest.com/ecosmob/>
This e-mail message may contain confidential or legally privileged
information and is intended only for the use of the intended recipient(s).
Any unauthorized disclosure, dissemination, distribution, copying or the
taking of any action in reliance on the information herein is prohibited.
Ecosmob Technologies is not responsible for errors or omissions in this
message and denies any responsibility for any damage arising from the use
of e-mail. Any opinion and other statement contained in this message and
any attachment are solely those of the author and do not necessarily
represent those of the company.
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on our
website, any views or opinions presented in this email are solely those of
the originator and do not necessarily represent those of the Company or its
sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
Thank you Joel for the tip.
But that is also not it.....
I tried of course, but when you look at the Dialog module documentation
is says:
modparam("dialog", "profiles_with_value", "caller ; my_profile")
So there are spaces in the modparam config for the dialog profiles.
Its just so strange that when starting Kamailio I get the error that the
Profile outbound is not configured, while it is...
Log line:
Dec 6 15:04:04 proxy01 /usr/local/sbin/kamailio[76664]: CRITICAL:
dialog [dialog.c:391]: fixup_profile(): profile <inbound> not defined
kamailo.cfg
# ---- Dialog params -------------
modparam("dialog", "default_timeout", 7200)
modparam("dialog", "db_mode", 0)
modparam("dialog", "dlg_flag", DLG_FLAG)
modparam("dialog", "hash_size", 4096)
#modparam("dialog", "detect_spirals", 1)
modparam("dialog", "profiles_with_value", "inbound")
Im starting to think that I am missing some configuration in the
kamailio.cfg file...
Rgds,
Gertjan
Thanks again Sergiu,
/Hmmm... if dialog params are wrapped in a ifdef condition, then do you
have something like #!define WITH_DIALOG at the top?/
But the #!define WITH_DIALOG is to choose between loading module
parameters or not loading module parameters...
When you do not add #!ifdef WITH_XXX before the parameters and #!endif
after, then those parameters will be loaded when starting Kamailio.
So, I still have the issue that the profile is not being loaded.
I have tried renaming the profiles, in the route and the parameters, but
that does not make a difference..
# ---- Dialog params -------------
modparam("dialog", "default_timeout", 7200)
modparam("dialog", "db_mode", 0)
modparam("dialog", "dlg_flag", DLG_FLAG)
modparam("dialog", "hash_size", 4096)
#modparam("dialog", "detect_spirals", 1)
modparam("dialog", "profiles_with_value", "inbound ; outbound")
route[CONCURRENT_IN]
{
#Add call to customer profile
#Check if customer has not reached inbound call limit
#Get max concurrent calls
sql_query("cc", "select max_calls_in from calllimit where
cust_id='$avp(custid)'", "ra");
$avp(maxcalls)=$dbr(ra=>[0,0]);
sql_result_free("ra");
$avp(concurrent) = 0;
get_profile_size("inbound", "$avp(custid)", "$avp(concurrent)");
if( $avp(concurrent) >= $var(max) )
{
xlog("L_INFO"," Call limit reached for customer
$avp(custid)\r\n ");
sl_send_reply("503", "No Lines Available");
exit;
}
set_dlg_profile("inbound", "$avp(custid)");
return;
}
But this still results in:
Dec 5 09:34:33 proxy01 /usr/local/sbin/kamailio[75755]: CRITICAL:
dialog [dialog.c:391]: fixup_profile(): profile <inbound> not defined
Dec 5 09:34:33 proxy01 /usr/local/sbin/kamailio[75755]: ERROR: <core>
[core/route.c:1166]: fix_actions(): fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:1578
Hi all,
I was wondering if someone can help me understand how the ICE parameter
works in the rtpengine module works.
So basically our client does an ICE candidate lookup and grabs a list of
them and applies it to the INVITE that gets sent to the Kamailio. The list
looks like this:
2020-12-03T18:05:46.456030+00:00 ashmainkama51 kamailio[22147]:
a=candidate:3373280875 1 udp 2122262783
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71 59827 typ host generation 0
network-id 2 network-cost 10
2020-12-03T18:05:46.456057+00:00 ashmainkama51 kamailio[22147]:
a=candidate:3040609428 1 udp 2122197247
2001:8a0:78fc:7000:d979:bf75:dbc0:69f 59828 typ host generation 0
network-id 3 network-cost 10
2020-12-03T18:05:46.456081+00:00 ashmainkama51 kamailio[22147]:
a=candidate:1681997092 1 udp 2122129151 192.168.1.66 59829 typ host
generation 0 network-id 1 network-cost 10
2020-12-03T18:05:46.456106+00:00 ashmainkama51 kamailio[22147]:
a=candidate:2274611867 1 tcp 1518283007
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71 9 typ host tcptype active generation
0 network-id 2 network-cost 10
2020-12-03T18:05:46.456131+00:00 ashmainkama51 kamailio[22147]:
a=candidate:4223662180 1 tcp 1518217471
2001:8a0:78fc:7000:d979:bf75:dbc0:69f 9 typ host tcptype active generation
0 network-id 3 network-cost 10
2020-12-03T18:05:46.456155+00:00 ashmainkama51 kamailio[22147]:
a=candidate:717406676 1 tcp 1518149375 192.168.1.66 9 typ host tcptype
active generation 0 network-id 1 network-cost 10
2020-12-03T18:05:46.456180+00:00 ashmainkama51 kamailio[22147]:
a=candidate:2130547417 1 udp 8199935 206.81.191.27 61165 typ relay raddr
85.247.0.121 rport 53091 generation 0 network-id 1 network-cost 10
In the rtpengine_offer, I have this:
rtpengine_offer("ICE=force DTLS=passive replace-session-connection
replace-origin external internal");
What i am trying to do is to tell the freeswitch endpoint to use rtpengine
as ICE candidate and I see in the SDP this is happening:
a=candidate:6296910676 1 udp 659136 206.81.191.52 52766 typ host generation
0
Btw..206.81.191.52 is a separate AWS instance running rtpengine binary.
On the rtpengine_answer, I tell the remote client side the same thing..use
rtpengine as your ICE candidate:
rtpengine_answer("ICE=force DTLS=passive replace-session-connection
replace-origin internal external");
and this is snippet from 200 OK:
a=candidate:6296910676 1 udp 659136 206.81.191.52 52766 typ host generation
0
Question:
Why does the rtpengine logs still show that it's trying to use
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71 as RTP candidate in this scenario?
Dec 3 18:05:47 ashmainrtpe42 rtpengine[8505]: DEBUG:
[ep1sbnkk9tikhg4kpmot]: Forward to sink endpoint:
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71:59827 (RTP seq 25423 TS 0)
I thought ICE=force will handle such adjustments so that all rtp is handled
by the rtpengine to our client and bypass the STUN server?
Thanks.
--
Andy Chen
Sr. Telephony Lead Engineer
achen@ <achen(a)thinkingphones.com>fuze.com
--
*Confidentiality Notice: The information contained in this e-mail and any
attachments may be confidential. If you are not an intended recipient, you
are hereby notified that any dissemination, distribution or copying of this
e-mail is strictly prohibited. If you have received this e-mail in error,
please notify the sender and permanently delete the e-mail and any
attachments immediately. You should not retain, copy or use this e-mail or
any attachment for any purpose, nor disclose all or any part of the
contents to any other person. Thank you.*
Well, I saw similar questions in the list already but looks like nobody has
answer.
Please look at REFER below.
Kamilio get REFER from MS and sends it to FS node. Next, FS node try to
make 3th call for some reason.I expect that FS will not do 3th call and
just will connect Alice and Bob itself.
2020/05/14 12:32:00.637027 KAM_IP:5060 -> FS_IP:5060
REFER sip:Alice_number@FS_IP:5060;transport=udp SIP/2.0
FROM: Customer1<sip:MS_TRUNK_NUMBER@sip.pstnhub.microsoft.com:5061
;user=phone>;tag=a860c50a3fb54d08b4e5740fa2dfb3d6
TO: <sip:Alice_number@FQDN_OF_TRUNK:5061>;user=phone;tag=e8ct9S6ty13va
CSEQ: 4 REFER
CALL-ID: 2c71b2a6669b5343a231e1244b19c945
MAX-FORWARDS: 50
Via: SIP/2.0/UDP
FQDN_OF_TRUNK:5060;branch=z9hG4bK10ae.2c42897feca117121a23bf0c8d54cd19.0;i=c
VIA: SIP/2.0/TLS 52.114.75.24:5061;branch=z9hG4bK7e3e8998
CONTACT: <sip:api-du-a-euwe.pstnhub.microsoft.com:443
;x-i=6b68e7aa-f5e2-44ec-9edf-0bacbabfce07;x-c=2c71b2a6669b5343a231e1244b19c945/d/8/b68f86794a8e44d19543f8edbee6b2fc
CONTENT-LENGTH: 0
REFER-TO: <sip:Bob_number@sip.pstnhub.microsoft.com:5061
;user=phone;transport=tls>
REFERRED-BY: <sip:sip.pstnhub.microsoft.com:5061
;x-m=8:orgid:21bc47d3-c050-4292-8234-46f7005b97aa;x-t=fb788ef8-3c4c-455a-8d62-f3c20832c0d3;x-ti=6b68e7aa-f5e2-44ec-9edf-
acbabfce07;x-tt=aHR0cHM6Ly9hcGktZHUtYS1ldXdlLnBzdG5odWIubWljcm9zb2Z0LmNvbS92MS9uZ2MvY2FsbG5vdGlmaWNhdGlvbj9kY2k9YzIxMjE3MzEyNTQ2NDk1ZjlhYTcwODliYTkwNGIxZGQ%3D>
USER-AGENT: Microsoft.PSTNHub.SIPProxy v.2020.5.6.2 i.EUWE.4
ALLOW: INVITE,ACK,OPTIONS,CANCEL,BYE,NOTIFY
P-ASSERTED-IDENTITY: <tel:MS_TRUNK_NUMBER>,<
sip:customer1@m365x587912.onmicrosoft.com>
PRIVACY: id
X-AUTH-IP: 52.114.75.24
X-AUTH-PORT: 3136
Any advice?
Hello Sergiu,
Thank you for the pointer, the line 1576 is:
get_profile_size("callee", "$avp(custid)", "$avp(concurrent)");
That is where Kamailio refuses to start....
And as you mentioned my error in the IF statement after correction you
pointed out, Kamailio still refuses on the fact that the profile
<callee> was not defined...
Dec 4 13:42:50 proxy01 /usr/local/sbin/kamailio[75008]: CRITICAL:
dialog [dialog.c:391]: fixup_profile(): profile <callee> not defined
Dec 4 13:42:50 proxy01 /usr/local/sbin/kamailio[75008]: ERROR: <core>
[core/route.c:1166]: fix_actions(): fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:1576
Dec 4 13:42:50 proxy01 systemd[1]: kamailio.service: Main process
exited, code=exited, status=255/n/a
Dec 4 13:42:50 proxy01 systemd[1]: kamailio.service: Failed with result
'exit-code'.
Does anyone else maybe have an idea on where I go wrong?
Rgds,
Gertjan
Hello,
I noticed that when i do calls behind NAT i'm getting this error when i
call fix_nated_sdp() :
"nathelper [nathelper.c:1659]: replace_sdp_ip(): can't extract 'a=rtcp'
IP from the SDP"
As far as i can see, all the ips on SDP are correctly replaced to a public
IP, so i don't understand the origin of this error.
This is the SDP received by Kamailio :
Session Description Protocol
Session Description Protocol Version (v): 0
Owner/Creator, Session Id (o): - 3421914885 1 IN IP4 192.168.24.89
Session Name (s): SIPPER for PhonerLite
Connection Information (c): IN IP4 192.168.24.89
Time Description, active time (t): 0 0
Media Description, name and address (m): audio 5062 RTP/AVP 107 8 0 2 3
97 110 111 9 18 11 118 101
Media Attribute (a): rtpmap:107 opus/48000/2
Media Attribute (a): rtpmap:8 PCMA/8000
Media Attribute (a): rtpmap:0 PCMU/8000
Media Attribute (a): rtpmap:2 G726-32/8000
Media Attribute (a): rtpmap:3 GSM/8000
Media Attribute (a): rtpmap:97 iLBC/8000
Media Attribute (a): rtpmap:110 speex/8000
Media Attribute (a): rtpmap:111 speex/16000
Media Attribute (a): rtpmap:9 G722/8000
Media Attribute (a): rtpmap:18 G729/8000
Media Attribute (a): fmtp:18 annexb=yes
Media Attribute (a): rtpmap:11 L16/44100
Media Attribute (a): rtpmap:118 L16/16000
Media Attribute (a): rtpmap:101 telephone-event/8000
Media Attribute (a): fmtp:101 0-16
Media Attribute (a): ssrc:2716178988
Media Attribute (a): sendrecv
And this is the SDP sent by Kamailio after NAT being treated :
Session Description Protocol
Session Description Protocol Version (v): 0
Owner/Creator, Session Id (o): - 3421914885 1 IN IP4 1.1.1.1 (Public IP)
Session Name (s): SIPPER for PhonerLite
Connection Information (c): IN IP4 1.1.1.1 (Public IP)
Time Description, active time (t): 0 0
Media Description, name and address (m): audio 5062 RTP/AVP 107 8 0 2 3
97 110 111 9 18 11 118 101
Media Attribute (a): rtpmap:107 opus/48000/2
Media Attribute (a): rtpmap:8 PCMA/8000
Media Attribute (a): rtpmap:0 PCMU/8000
Media Attribute (a): rtpmap:2 G726-32/8000
Media Attribute (a): rtpmap:3 GSM/8000
Media Attribute (a): rtpmap:97 iLBC/8000
Media Attribute (a): rtpmap:110 speex/8000
Media Attribute (a): rtpmap:111 speex/16000
Media Attribute (a): rtpmap:9 G722/8000
Media Attribute (a): rtpmap:18 G729/8000
Media Attribute (a): fmtp:18 annexb=yes
Media Attribute (a): rtpmap:11 L16/44100
Media Attribute (a): rtpmap:118 L16/16000
Media Attribute (a): rtpmap:101 telephone-event/8000
Media Attribute (a): fmtp:101 0-16
Media Attribute (a): ssrc:2716178988
Media Attribute (a): sendrecv
Media Attribute (a): oldmediaip:192.168.24.89
Media Attribute (a): oldmediaip:192.168.24.89
Is there something failing in the SDP fix?
Best Regards,