Hello,
during the night between Wed (June 24) and Thu (June 25), planned to
start not early than 00:00 GMT+1, there will be some schedule
maintenance work to the infrastructure that is hosting some of the
kamailio.org servers.
The main affected services will be:
- main website (www.kamailio.org)
- wiki portals
- mailing lists (lists.sip-router.org)
- git mirror (git.kamailio.org)
It is expected to have short downtimes of few minutes.
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 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 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
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(): 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/
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
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
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.
Any help would be appreciated.
Thanks
Ali
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=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
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 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
Hello,
With respect to *_route blocks in kamailio configs, I gather that
event_route is the newest type of route in the config vocabulary. However,
many modules have functions that specifically state that they work within
certain routes, like REQUEST_ROUTE and FAILURE_ROUTE, with the implication
that they won't work in other routes. For example, there are some
functions that "work" in EVENT_ROUTE as well, and that this could be a
matter of either documentation not being updated yet, or funny/bad behavior
I may encounter at some future point in time...
Generally speaking, are there any general statements that can be made about
what "common" modules/functions are definitely only available within
request_route and onreply_routes? event_route blocks, in particular,
elucidate many other use cases for several modules' functions that I'm sure
the original authors didn't think of, and it would be great to have a
high-level commentary/discussion like "module XYZ or modules that touch A,
B, and C don't have a snowball's chance of working in an event_route".
Comments are welcome. Thanks!
Armen