Hi!
We meet such an issue with some kinds of client internet connections
(e.g. reproduces always on local wifi, but doesn't repr. on 3g inet).
We don't know what are exact network characteristics, but what happens
from perspective of traffic on SIP server is the following:
1. the SIP client registers successfully to Kamailio (which is recent
git master HEAD) with TCP transport for SIP;
2. another client calls this user;
3. Kamailio relays INVITE, it gets transmitted fully and ACK-ed on TCP …
[View More]level;
4. then, within 0.1-0.2 second, Kamailio fires first retransmit of
that INVITE, which doesn't get fully transmitted (it is shown
trunkated in sniffer output, no TCP ACK replies for it);
5. Kamailio tries to retransmit INVITE again, with the same result as in #5.
6. The caller gets SIP/2.0 408 Request Timeout.
A piece of traffic from "ngrep -t -e -d any -W byline port 5060":
https://gist.githubusercontent.com/krieger-od/219f9975e5efb980ff5b/raw/096a…
The called side app is based on mobile Linphone app.
Switching to UDP is not an option (in some networks SIP messages get
delivered trunkated which breaks calls), we will check how it works
with TLS transport a bit later when there's technical possibility.
I have two questions:
1. How would I completely disable retransmissions to TCP connections?
2. Any ideas what can be the reason for this issue? Retransmissions by
themselves?
--
Andrey Utkin
[View Less]
Hello folks,
I am trying to configure this on the same server:
Kamailio v4.2 port 5060
RTPEngine v2.3 port 22222
Asterisk v11.18.0 port 5080
I am follow the Asipto tutorials, for the Kamailio and the real time
configuration.
Now, I can talk between extension and PSTN without issues.
But the trouble is with the Status registration with Asterisk. And I need
that Status OK because I am using queues in asterisk for call centre.
I got this from with: sip show peers
Name/username …
[View More]Host Dyn
Forcerport Comedia ACL Port Status Description
Realtime
101 (Unspecified) D Yes
Yes 0 UNREACHABLE
Cached RT
the status is UNREACHABLE and the asterisk table sipregs won't update
after each registration. To be sure, I tried first all config only with
asterisk to check that is not a problem with MySQL or something.
On my cfg file I have this for the asterisk registration:
route[REGFWD] {
if(!is_method("REGISTER"))
{
return;
}
$var(rip) = $sel(cfg_get.asterisk.bindip);
$uac_req(method)="REGISTER";
$uac_req(ruri)="sip:" + $var(rip) + ":" + $sel(cfg_get.asterisk.bindport);
$uac_req(furi)="sip:" + $au + "@" + $var(rip);
$uac_req(turi)="sip:" + $au + "@" + $var(rip);
$uac_req(hdrs)="Contact: <sip:" + $au + "@"
+ $sel(cfg_get.kamailio.bindip)
+ ":" + $sel(cfg_get.kamailio.bindport) + ">\r\n";
if($sel(contact.expires) != $null)
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $sel(contact.expires) +
"\r\n";
else
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $hdr(Expires) + "\r\n";
uac_req_send();
}
Any clue?
Thanks!
--
Javier Aristizábal
[View Less]
Hello. I'm trying to set up this (v 4.2 stable):
peer <--> ec2 <--kamailio+rtpengine--> asterisk
scheme
I use advertised adress for SIP and WS connections.
The problem is that on SIP I get one way audio - I can receive audio from
asterisk, but I can't transmit audio there - my SIP UA tries to send data
to Kamailio-s local EC2 IP. In case of WebRTC I get lot's of erros:
Jun 23 01:58:57 kamailio /usr/sbin/kamailio[18325]: WARNING: <core>
[msg_translator.c:2778]: via_builder(): …
[View More]TCP/TLS connection (id: 0) for
WebSocket could not be found
Jun 23 01:58:57 kamailio /usr/sbin/kamailio[18325]: ERROR: <core>
[msg_translator.c:1996]: build_req_buf_from_sip_req(): could not create Via
header
Jun 23 01:58:57 kamailio /usr/sbin/kamailio[18325]: ERROR: <core>
[forward.c:584]: forward_request(): building failed
Jun 23 01:58:57 kamailio /usr/sbin/kamailio[18325]: ERROR: sl
[sl_funcs.c:387]: sl_reply_error(): ERROR: sl_reply_error used: I'm
terribly sorry, server error occurred (1/SL)
The call reaches Asterisk, but not vice-versa. No media is being
transferred.
Rtpengine flags I use:
For SIP: rtpengine_manage("trust-adress replace-origin
replace-session-connection RTP/AVP");
For WS: rtpengine_manage("trust-address replace-origin
replace-session-connection ICE=force RTP/AVP");
Do you have any ideas how ti fix that? I also make REGFWD's to Asterisk
--
Alexandru Covalschi
ABRISS-Solutions
VoIP engineer and system administrator
phone: +37367398493
web: http://abs-telecom.com/
[View Less]
Hello. I Installed kamailio on ubuntu 14.04 that runs as virtual
systemOpenVZ.
after starting kamailio I see that it runs ok with
kamailio start
or
kamctl start
at ps -ax I see working processes.
But after one minute of working kamailio fails with
kamailio: ERROR: <core> [daemonize.c:315]: daemonize(): Main process exited
before writing to pipe
I see nothing more at debug file. No errors. (I run with debug=4)
my cfg parameters at start
mhomed=1
memdbg=5
memlog=5
fork=yes
children=6
…
[View More]
version: kamailio 4.2.4 (x86_64/linux) ac3682
flags: STATS: Off, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC,
F_MALLOC, DBG_F_MALLOC, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE,
USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: ac3682
compiled on 04:27:04 Apr 10 2015 with gcc 4.8.2
[View Less]
Hello,
Suppose I have $var(a) = 1234#5678 and $var(b)=123455667
I need to get the number before '#' character if exists , meaning that from
$var(a) I must get 1234# and from $var(b) I must get empty string.
I tried $var(pref)= $(var(a){s.select,0,#}); but I'm getting the whole
string if # doesn't exists.
There is a way to check if # exists by subtracting the length of the
string before and after removing # character and check if length changes ,
but I want a cost-less method.
…
[View More]
Any help would be appreciated.
Thanks
Ali
[View Less]
Hi,
we have some cases, where we get multiple PCMA lines with different numbers
from a peer. One of our backend systems doesn't handle that correctly. So
what I want to do is detect whether there is a PCMA line with a
non-standard number in the SDP.
This is how an SDP looks like:
v=0
o=hiQ9200 2990220150519102450 1229717573 IN IP4 1.2.3.4
s=Phone Call
c=IN IP4 1.2.3.4
t=0 0
m=audio 40174 RTP/AVP 8 0 18 96 97 13 100 98 99
a=rtpmap:8 PCMA/8000
a=fmtp:8 vad=no
a=rtpmap:0 PCMU/8000
a=fmtp:0 vad=…
[View More]no
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
a=rtpmap:96 G726-32/8000
a=rtpmap:97 AAL2-G726-32/8000
a=rtpmap:100 telephone-event/8000
a=fmtp:100 0-15
a=rtpmap:98 PCMA/8000
a=gpmd:98 vbd=yes
a=rtpmap:99 PCMU/8000
a=gpmd:99 vbd=yes
a=sqn: 0
a=cdsc: 1 image udptl t38
a=sendrecv
a=pmft: T38
a=ptime:20
I tried something like that (expecting that the number doesn't change):
if (sdp_get_line_startswith("$avp(badcodec)", "a=rtpmap:98 PCMA")) {
But this makes Kamailio drop the INVITE when arriving at the line in the
config. I guess, "startswith" stops parsing the line at the colon.
So I thought I'll make it more generically:
sdp_get("$avp(sdp)");
if ($avp(sdp) =~ "a=rtpmap:([1-9][0-9][0-9]?) PCMA") {
sdp_remove_codecs_by_id("$missingvariable");
}
What I need is to capture the number in the a=rtpmap line so I can delete
the codec by ID. But I couldn't find a way to capture the matches from my
regex comparison. Am I missing something?
(Other approaches for my problem would be welcome, too.)
Thanks in advance.
Best Regards,
Sebastian
[View Less]
Hello,
my setup is a kamailio server as registrar and Blox as SBC.
Blox is a freeware GUI with Opensips as framework.
Kamailio is located in the private network and Blox operates with 2 NICs (private and public)
Now the following problem:
If I make a call from public (phonerlite) to private (mayah), the connection don’t reach the “framed” state and is “broken” after 30 sec.
After evaluating the log files, I found that the CSeq from Kamailio is wrong.
The invite comes from
CSeq: 9 INVITE
The …
[View More]reply is with CSeq 1
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.0.3:6060;branch=z9hG4bK38ae.cf317344.0
Max-Forwards: 70
To: <sip:1001@192.168.1.3:8000>;tag=qTKGZvr0ItW
From: "PhonerLite" <sip:1000@192.168.1.3:8000>;tag=1005520878
Call-ID: SBCbFgsQn5HcHpEUxJUVF8gQWVZREt6QwJvWVJkXCdAUzdkXl41CUJ4cEdWZV1NQ0tFYQ
CSeq: 1
Contact: <sip:1001@192.168.0.33:5060>
Record-Route: <sip:192.168.0.1;lr=on>
User-Agent: MAYAH 4.9.12.0-2.1.0.45
Content-Length: 0
And here the information from the opensips log files:
Jun 22 14:30:32 localhost blox-0-9-6-beta[1975]: ERROR:core:parse_cseq: no method found
Jun 22 14:30:32 localhost blox-0-9-6-beta[1975]: ERROR:core:parse_cseq: bad cseq
Jun 22 14:30:32 localhost blox-0-9-6-beta[1975]: ERROR:core:get_hdr_field: bad cseq
Perhaps someone of you knows this failure or can tell me how to solve this problem?
Cheers,
Kai
[View Less]