Im using if(sdp_with_transport("RTP/SAVP")) to detect with endpoint is send
SAVP or not to divert to and rtp proxy or rtpengine, as you know rtpproxy
supports recording and rtpengine does not yet.
So when using if(sdp_with_transport("RTP/SAVP")) with Grandstream Phones
all worked fine, but when configuring Optional or Compulsory SRTP in
Yealink it seems to do not detect
i have seen that crypto lines are not in the final SDP but do not know if
thats the reason
Did you have a similar issue with Yealink?
If i could get traces in anyway to help let me know.
BR
Alberto
INVITE sip:212@10.0.1.34:15060 SIP/2.0.
Record-Route: <sip:x.x.x.x:8002;r2=on;lr=on;ftag=1072578853;nat=yes>.
Record-Route:
<sip:x.x.x.x:8001;transport=tls;r2=on;lr=on;ftag=1072578853;nat=yes>.
Via: SIP/2.0/UDP
x.x.x.x.:8002;branch=z9hG4bK24c2.948e5074172530002b3bfb131ba51de6.0;i=1.
Via: SIP/2.0/TLS 10.0.1.111:11891
;received=83.x.x.x;rport=11891;branch=z9hG4bK456460360.
From: "214" <sip:214@1x.x.x.x:8001>;tag=1072578853.
To: <sip:212@x.x.x.x:8001>.
Call-ID: 0_1310998066(a)10.0.1.111.
CSeq: 2 INVITE.
Contact: <sip:214@83.x.x.x:11891;transport=TLS>.
Content-Type: application/sdp.
Allow: INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER,
SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE.
Max-Forwards: 69.
User-Agent: Yealink SIP-T21P_E2 52.80.0.3.
Allow-Events: talk,hold,conference,refer,check-sync.
Content-Length: 553.
.
v=0.
o=- 20143 20143 IN IP4 x.x.x.x.
s=SDP data.
c=IN IP4 x.x.x.x
t=0 0.
m=audio 8530 RTP/AVP 0 8 18 101.
a=crypto:1 AES_CM_128_HMAC_SHA1_80
inline:N2RjYzlhMjNmMzAwMDU5YzU2YjQ4ZTU1ODE4MzNm.
a=crypto:2 AES_CM_128_HMAC_SHA1_32
inline:NWQwYzgzMzhlYmU1OGY2NThmMzk2NjYwMTllZWI3.
a=crypto:3 F8_128_HMAC_SHA1_80
inline:YjEyN2M5Nzk4YzRmZDQ5ZTYxZGUzNTI3Yzg1YTgw.
a=rtpmap:0 PCMU/8000.
a=rtpmap:8 PCMA/8000.
a=rtpmap:18 G729/8000.
a=fmtp:18 annexb=no.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=ptime:20.
a=sendrecv.
a=nortpproxy:yes
Hi guys,
I have a kamailio load balancing requests across 2 Asterisk Servers, and all is working well.
Only problem now is when utilizing feature codes to look to listen into calls using the chanspy application I am having issues.
I am passing calls to *2222 into Asterisk, where an IVR answers the call, then sends an INVITE back to kamailio to check to see if the extension I want to listen into is in an active call (hash table), and the call will then be forwarded to the Asterisk in question and chanspy applied so it can be listened to.
The problem I have is when I send an INVITE from Asterisk Server, and then kamailio sends an INVITE back to the same Asterisk Server I get the following failure in asterisk console;
Not accepting call completion offers from call-forward recipient
I appreciate its potentially more an Asterisk question but I wondered if anyone had experienced the same issue?
I have setup a completely load balanced environment so dont want to use Primary/Secondary Server routing.
Thanks
Jon
Hello,
Running kamailio 4.2.5 for a few weeks now, coming from 4.2.3. Since the
upgrade we increased the logging substantially in our routing to get
more insight into what is going on.
We noticed that in a few cases the log showed a SIP message was being
threated by multiple forks, each considering if it was a non-existing
call. e.g.
Jul 9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17170]: INFO: <script>:
28ca767d5524f7ac095efcd02d6995f5@1.2.3.4:5060 - CB, Checking service
restrictions
Jul 9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17170]: INFO: <script>:
28ca767d5524f7ac095efcd02d6995f5@1.2.3.4:5060 - CB, Checking
international restrictions
Jul 9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17171]: INFO: <script>:
28ca767d5524f7ac095efcd02d6995f5@1.2.3.4:5060 - CB, Checking service
restrictions
Jul 9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17171]: INFO: <script>:
28ca767d5524f7ac095efcd02d6995f5@1.2.3.4:5060 - CB, Checking
international restrictions
As you can see this shows different threads handling the exact same
callid (printed by $ci). And both run the same checks in our routing
plan. The main problem is, I'm not able to reproduce this on the
testplatform, but only see it happen on the main systems. Also, it
doesn't happen that often, in this case there are about maybe 10 similar
calls like this over the run of a few weeks. This case show the call
being handled by 2 threads, but we've even seen with one call it being
handled by 4 threads, all with the same $ci and the same messages, just
different PIDs.
I've checked and made sure the routing isn't recursively calling itself.
But even if that was true, I would imagine the same PID for all the log
entries.
Running production in debug mode isn't an option, as it will interfere
too much with the day-to-day business. So I'm hoping to get a few
pointers here maybe, I'm happy to look at the source code more in depth,
I just need a little help in the right direction to not get lost in
other code.
Any help is much appreciated.
Cheers,
Dirk
Hello,
On 09/07/15 12:54, Surendra Pullaiah wrote:
>
> Hello
>
>
>
> I am trying to implement code coverage tool in
> kamailio using gcov. I have added CFLAGS and LIBS in Makefile.defs and
> it got compiled successfully.
>
> My problem is when I am running kamailio it is saying
> lib64/kamailio/libkcore.so.1: undefined symbol: __gcov_merge_add.
>
>
>
> Can anyone help me on this.
>
Maybe those defines and libs need to be added to internal libraries --
see the Makefiles inside the folders of lib/ directory in kamailio
source tree.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com
Hello,
I try to setup a SIP infrastructure with Kamailio server in private network and a pass through Kamailio proxy in the DMZ for NAT handling. (-> TEST.jpg)
The pass through proxy uses a new routing algorithm and this works fine for external calls to internal calls. (->Kamailio.cfg.txt)
The logic behind is if a packet on external interface arrives, the proxy change the URI and forward the packet to the internal SIP server.
Otherwise, the proxy shall forward the packet to external interface if a packet arrives at the internal interface.
Because the SIP server has a fix IP, it's easy to route to this server, but the way back is more complicated and I think my algorithm is not working.
But the first problem is the routing behavior from the private server if I try to make a call from intern to extern. The server sends the request to the external IP address from the client and the IP address from the pass through Kamailio proxy is not considered.
8(2720) ERROR: <core> [udp_server.c:576]: udp_send(): sendto(sock,0x7f4724dd9238,1328,0,192.168.1.20:5060,16): Network is unreachable(101)
8(2720) ERROR: tm [../../forward.h:208]: msg_send(): udp_send failed
8(2720) WARNING: tm [t_fwd.c:1610]: t_send_branch(): ERROR: t_send_branch: sending request on branch 0 failed
8(2720) exec: *** cfgtrace:request_route=[RELAY] c=[/usr/local/etc/kamailio/kamailio.cfg] l=553 a=24 n=sl_reply_error
8(2720) ERROR: sl [sl_funcs.c:387]: sl_reply_error(): ERROR: sl_reply_error used: Unfortunately error on sending to next hop occurred (477/SL)
8(2720) exec: *** cfgtrace:request_route=[RELAY] c=[/usr/local/etc/kamailio/kamailio.cfg] l=555 a=2 n=exit
7(2718) exec: *** cfgtrace:request_route=[DEFAULT_ROUTE] c=[/usr/local/etc/kamailio/kamailio.cfg] l=474 a=5 n=route
To change the IP address which is used from the private server as the destination address, I added the following lines to the Kamailio.cfg.
modparam("registrar", "use_path",1)
modparam("registrar", "path_mode", 2)
modparam("registrar", "path_use_received",1)
modparam("path", "use_received", 1)
But the routing behavior has not changed. (perhaps this configure was not the right)
Is there a way to configure the private server that the last IP address from the record-route header is used?
Cheers,
Kai
I'm adding and removing headers in the standard route[RELAY], but if there is
a redirection involved headers aren't removed.
route[RELAY]
{
#stdstuff
route(ADDCHECKSUM);
# enable additional event routes for forwarded requests
# - serial forking, RTP relaying handling, a.s.o.
if (is_method("INVITE|SUBSCRIBE")) {
t_on_branch("MANAGE_BRANCH");
t_on_reply("MANAGE_REPLY");
}
if (is_method("INVITE")) {
t_on_failure("MANAGE_FAILURE");
}
if (!t_relay()) {
sl_reply_error();
}
exit;
}
route[ADDCHECKSUM]
{
if($avp(dst_accountcode) || $avp(src_accountcode))
{
#some magic
remove_hf("X-rand");
remove_hf("X-csum");
append_hf("X-rand: $var(rand)\r\n");
append_hf("X-csum: $var(checksum)\r\n");
}
return;
}
This works well unless the destination is a redirecting sip server.
failure_route[MANAGE_FAILURE] {
route(NATMANAGE);
if (t_is_canceled()) {
exit;
}
if (t_check_status("3[0-9][0-9]"))
{
#...
route(RELAY);
exit;
}
-user calls destination.
-dispatcher sets destination is send to redirectserver and routes to RELAY,
addchecksums add some headers called from relay.
-redirectserver replies 302.
-failure route triggers and ends with a route to RELAY. Any existing old
values should be removed and the newer ones added.
But end the result is that I have two sets op X-rand/csum headers for the
INVITE to the redirection contact. How do I get rid of every X-csum/rand
header except the last added ones?
Version tested: 4.2.5.
I know in ratelimit, you can define a method within queues... for
example, modparam("ratelimit", "queue", "3:INVITE") to match on INVITE
method.
With pipelimit, is the method called from the config, such as:
if(is_method("INVITE")) {
# Checking limit on INVITE
if (!pl_check("$au", "traildrop", "$var(limita)")) {
pl_drop();
exit;
}
}
if(is_method("REGISTER")) {
# Checking limit on REGISTER
if (!pl_check("$au", "traildrop", "$var(limitb)")) {
pl_drop();
exit;
}
}
--
Fred Posner
The Palner Group, Inc.
http://www.palner.com (web)
+1-503-914-0999 (direct)
Hi All,
I'm fighting with msilo module now. I recive an offline message, but msilo
gets 408 status and think that a message wasn't sent succesfully.
According to the log, the error somewhere in t_relay, but I
couldn't find where exactly. Therefore, msilo doesn't delete rows
from silo table in database and everytime the user reregisters he gets
offline messages again and again.
--
lifayk
e: lifayk(a)gmail.com
pgp: 0x84CAC40B