Hi allI have the following code:
if($T_reply_code=="200") { if(has_body("application/sdp")) { xlog("L_INFO", "RTPENGINE received internal reply $T_reply_code $rr SDP extra lines will be removed");
set_rtpengine_set("0"); rtpengine_manage(); sdp_remove_line_by_prefix("a=rtcp"); sdp_remove_line_by_prefix("a=ssrc"); sdp_remove_line_by_prefix("a=ice"); sdp_remove_line_by_prefix("a=candidate");
xlog("L_INFO", "RTPENGINE received internal reply $T_reply_code $rr SDP extra lines removed with SDPOPS");
}
}When I look through traces - I see that 200 ok(with SDP) has all these attributes and they are not removed.
Why SDPOPS does not remove these attributes?
Hi everyone! I am a newbie with Kamailio.
I'm trying to connect a kamailio server to an asterisk gateway. We are
using basic Kamailio 4.4.x configuration file with mysql and rtpproxy
we are having same issues with dispatcher module. we can not call between
local subscribers.
Basically, If I call to a local subscriber, the module always execute the
route(DISPATCHER) code on the routing block, trying to send the call to my
gateway, but if I try to call to an external number, it works perfect. All
calls are being send to my gateway.
Here is my dispatcher code:
# Dispatch requests
route[DISPATCH] {
# round robin dispatching on gateways group '1'
if(!ds_select_dst("1", "4"))
{
send_reply("404", "No destination");
exit;
}
### xlog("L_DBG", "--- SCRIPT: going to <$ru> via <$du>\n");
xlog(" --- DISPATCH: going to <$ru> via <$du>n");
t_on_failure("RTF_DISPATCH");
return;
}
## Sample failure route
failure_route[RTF_DISPATCH] {
xlog(" --- DISPATCH: Starts RTF_DISPATCH \n");
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())
{
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
}
Can anybody help to see what I am doing wrong??
Hi All,
I tried today new module http_client. I just made GET request using
http_client_query in following way:
http_client_query("http://cool.api.com", "$var(result)");
It is working, but I can't see User-Agent in request. Below you can find my
module options:
modparam("http_client", "useragent", "kamailio")
modparam("http_client", "connection_timeout", 1)
Is it a bug, or am I doing something wrong?
Thank you!
Jurijs
Hi there
We have got a situation that needed your help to overcome that. We have
setup a Kamailio with voice, video call and text messaging and even push
notification ability. it was working and till these days that we have lost
media (voice and video and calling ability). seems that the clients do not
see each other but strange is that they can send text messages and even
push notification is work as well.
Could you please give me an idea how to find the problem, or if you know
how to solve it?
Best regards.
Sirvan Parasteh
Hello,
We have kamailio running as proxy in front of a freeswitch box.
This kamailio also acts as a registrar listening both 5060 and 5090 ports.
We have two devices registered to kamailio:
Device A on port 5060
Device B on port 5090
When Device B calls Device A everything is fine. Call released successfully.
When Device A calls Device B, call setup is ok and they can talk.
But when Device A tries to release the call, Device B remains open which
cannot get a BYE message.
When I dug up for the cause of the problem, I realized that:
When Kamailo receives 200OK reply on port 5090 for the UPDATE message from
Device B, it relays this reply internally and then sends this reply to
freeswitch box on port 5060.
This results in loosing alias in the contact field of the reply message and
then which causes freeswitch to return BYE message with the wrong IP which
is the local IP of the Device B. As a result this BYE message cannot be
delivered to Device B.
Is this a normal behaviour ? If it is so what changes should I make in the
kamailio config to fix this?
You can find the ngrep outputs of the both calls as attachment.
Thanks
Huseyin Kalyoncu
Hi guys
i am bridging call on a private ip asterisk behind kamailio/rtpproxy
i am calling rtpproxy with the route [FROMASTERISK]
route[FROMASTERISK] {
if(ds_is_from_list()){
xlog("L_INFO","$dd Call from Media-Server Cluster\n");
rtpproxy_manage("cawei");
SIP INVITE with sdp always report a corrupt body!!!
Session Name (s): Asterisk PBX 13.9.1
Connection Information (c): IN IP4 PUBLICIPPUBLICIP
Connection Address: PUBLICIPPUBLICIP
thats really strange since i am calling rtpproxy_manage only once i can't understand it appears twice.
what do you think about that ? thx you
Hello List,
I have a setup of two WebRTC-Clients registered to kamailio. RegA calls RegB. Signalling itself for connection seems to work until the point RegA receives the 200Ok and wants to send the ACK, kamailio throws errors. Here are the 200Ok with the following ACK and the errors that kamailio writes:
200OK (from RegB to RegA, successful):
SIP/2.0 200 OK
Record-Route: <sip:zfHrSW4KTMuuxQYK+gVKH5MK+gUR1jc=@10.250.5.74:8083;transport=ws;lr=on;ftag=3bege11omg>
Via: SIP/2.0/WSS 192.0.2.1;rport=54839;received=10.250.5.17;branch=z9hG4bK415866
To: <sip:dnagorny@r5dev-kam1.robot5.de>;tag=ecmmlvc4ee
From: "Testaccount" <sip:4@r5dev-kam1.robot5.de>;tag=3bege11omg
Call-ID: vu8rkkgki2uupuf2cqf4
CSeq: 2017 INVITE
Contact: <sip:l1jevtog@192.0.2.59;alias=10.250.5.17~54838~6;alias=10.250.5.17~54838~6;transport=ws>
Supported: ice,replaces,outbound
Content-Type: application/sdp
Content-Length: 1001
v=0
o=mozilla...THIS_IS_SDPARTA-47.0 4652302965311172452 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sha-256 1A:88:2D:6E:9F:82:14:E0:A2:DB:A7:16:56:00:2C:25:1B:D2:D1:EE:B2:D5:ED:6F:E1:7C:5C:B4:1A:30:9C:85
a=group:BUNDLE audio
a=ice-options:trickle
a=msid-semantic:WMS *
m=audio 30710 UDP/TLS/RTP/SAVPF 111
c=IN IP4 10.250.5.74
a=candidate:0 1 UDP 2122252543 10.250.5.17 52581 typ host
a=candidate:1 1 UDP 1686052863 87.158.246.174 49807 typ srflx raddr 10.250.5.17 rport 52581
a=end-of-candidates
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=fmtp:111 maxplaybackrate=48000;stereo=1
a=ice-pwd:4d722747e7d3b3caa360ebe9e646fb44
a=ice-ufrag:2b7e23b8
a=mid:audio
a=msid:{5cea7c38-cc3e-4bd2-9a3b-5d2381f0acf9} {0236e1cf-dfdc-4c94-8ce0-59f52a23ebb1}
a=rtpmap:111 opus/48000/2
a=setup:active
a=ssrc:565594393 cname:{7df4b0da-093c-4c2d-b154-0b860b43f575}
a=sendrecv
a=rtcp:30710
a=rtcp-mux
a=candidate:Y2XhN5oQNoH6nRph 1 UDP 2122252799 10.250.5.74 30710 typ host
ACK (from RegA to RegB, unsuccessfull):
ACK sip:l1jevtog@192.0.2.59;alias=10.250.5.17~54838~6;transport=ws SIP/2.0
Route: <sip:zfHrSW4KTMuuxQYK+gVKH5MK+gUR1jc=@10.250.5.74:8083;transport=ws;lr=on;ftag=3bege11omg>
Via: SIP/2.0/WSS 192.0.2.1;branch=z9hG4bK2821443
Max-Forwards: 69
To: <sip:dnagorny@r5dev-kam1.robot5.de>;tag=ecmmlvc4ee
From: "Testaccount" <sip:4@r5dev-kam1.robot5.de>;tag=3bege11omg
Call-ID: vu8rkkgki2uupuf2cqf4
CSeq: 2017 ACK
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: outbound
User-Agent: JsSIP 1.0.1
Content-Length: 0
Thrown Errors:
kamailio[5009]: INFO: <script>: Is natted
kamailio[5009]: INFO: <script>: From: sip:4@r5dev-kam1.robot5.de To: sip:l1jevtog@192.0.2.59;alias=10.250.5.17~54838~6;transport=ws @ <null> Via: SIP/2.0/WSS 192.0.2.1;branch=z9hG4bK4386608 Route: <null> vu8rkkgki2uupuf2cqf4
kamailio[5009]: ERROR: <core> [forward.c:529]: forward_request(): cannot forward to af 2, proto 5 no corresponding listening socket
kamailio[5009]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (7/SL)
I don't understand these errors. Can anybody explain and point me what needs to be fixed?
Using Kamailio 4.3.5 on CentOS7.2, funny info if I call from outside(PSTN/FreeSWITCH) to kamailio into WebRTC-Client it works w/o problems.
Respectfully
Dimitry Nagorny
Trainee
Hello!
Could you, please, help me to make the above?..
I already have rough understanding about blst, permission modules etc.
But I am about to compose CFG to count wrong (erroneous) attempts
to REGISTER or INVITE from the same IP through several SIP dialogs.
For example, some malicious user attempes to brute-force password.
I would like to move it permanently into permissions' database after
several (predefined) attempts.
Kind regards,
Ellad
Hey Guys,
I was wondering if there is any dynamic way today to remove a single
registration out of memory (and implicitly to force un-REGISTER)
Eg: I add one record using uac.reg_refresh (which works fine) but after
removing the record from the database and executing uac.reg_refresh
again, the record stays in memory until expire.
Is there a better way to enforce un-register on remote side?
Thanks in advance!
DanB