Hi all.
I want to create a Kamailio server who have dispatcher module, to
loadbalance some asterisk servers who have my billing system.
But, if I call from internet to my Public IP on Kamailio server, and then
call goes to internal IP asterisk, who execute Echo App, I cant hear myself.
If I call to my Public IP on Kamailio server, and call goes to EXTERNAL IP
on Asterisk, everything works nice.
I want this : Sip Client > Public IP Kamailio > Internal IP Kamailio >
Internal IP Asterisk Server > Echo()
I have rtpproxy running on same machine that Kamailio, and Im running with
this command:
rtpproxy -F -s udp:127.0.0.1:7722 -l PU.BL.IC.IP/172.16.1.1 -d
DBUG:LOG_LOCAL0
My asterisk have 172.16.1.2 as internal IP.
https://www.cloudshark.org/captures/15724d2d7e51
This is my tcpdump file captured.
Thanks for any help.
Willian Mazzardo
Depto TI - SYSSVOIP
www.syssvoip.com.br
55 3537 2030
Hello there,
Kindly advise me on how i can download and install the iptel soft switch
for both Windows and Linux
platforms.
I intend to install a hosted Sip VoiP service using your open source
switch for both home and office environments.
I have jst been checking out the documentation from the site but seams
some documentation pages are
failing to load (timing out).
Kindly advise or share with me some of the download links for the
application so i can make a successful
installation.
Sincere regards,
--
***/Happy New Year/***
*HENRY K. Kaimarah*
/Cell:/ +256-754462010
/Now in Kampala/ - UGANDA.
Hello all,
We are moving our registration and location services to dedicated instances geographically separate from our proxies and then using redirects to locate the registered user. The idea is to protect the proxies from a potential thundering herd of registrations if there was some network outage I’m using dispatcher to find a registrar that has a registration for the user, if a user is not locally registered a 503 is returned and the next server is contacted. Registrations are replicated to other servers when the client is not behind NAT. If the client is behind NAT, the registrar where the client initially registered performs keep-alives and NAT traversal and also acts as an outbound proxy instead of sending a redirect.
I’m attempting to simplify the configuration by using a dispatcher group to classify incoming registrations and to select replication targets but the registrar that initially received the request is in the group as well. Is there an elegant way to chose all destinations except the local instance? I’m currently doing this with the hack below but any suggestions would be greatly appreciated.
Also, if anyone has any comments or recommendations on the topology, please share!
Thanks,
Spencer
if (isflagset(FLT_FROMREG))
return;
subst('/^From:(.*)sip:.*@[a-zA-Z0-9.:]+(.*)$/From:\1sip:$au@DOMAIN\2/ig');
subst('/^To:(.*)sip:.*@[a-zA-Z0-9.:]+(.*)$/To:\1sip:$au@DOMAIN\2/ig’);
$rd = "DOMAIN";
$var(local_uri) = "sip:" + $Ri + ":" + $Rp;
ds_select_dst("10", "4");
if ($du != $var(local_uri)) {
t_replicate($du);
}
while (ds_next_dst()) {
if ($du != $var(local_uri)) {
t_replicate($du);
}
}
Dear all,
I have an on-reply route that needs to change the SDP version for the
reply coming in. The use case is that I have a mobile originated call
and there is some Ericsson switch that doesn't like it when the SDP
version is updated (in this case by asterisk) although nothing has
changed to the actual SDP (183 session progress and then OK.) Funny
thing is that Asterisk will actually drop a call if it receives a
re-INVITE with same version... That's why they invented
ignoresdpversion, but now it's the other way around.... :)
Mobile phone -> Ericsson MSC -> ACME packet -> (18X.4X.XXX.XX) Kamailio
(10.41.0.21) -> Asterisk
The issue is that the asterisk sends a reply 200 OK, with an updated
version because it already sent SDP for 183 session progress. This can
be patched in asterisk, but in my scenario I can unfortunately not do
that. Thus trying to fix this on Kamailio.
I am able to 'fix' this currently by performing a subst on the sdp owner
variable:
onreply_route[WITHSDP] {
if (has_body("application/sdp")) {
if(ds_is_from_list()) {
rtpproxy_answer("wrei");
*if(subst("/^o=someowner ([0-9]+) ([0-9]+) IN IP4
(.*)$/o=someowner \1 \1 IN IP4 \3/")) {*
xlog("L_INFO", "Fixed Asterisk incorrect
version number in SDP");
}
# tried the answer here as well, but that
corrupts it even more
}
else {
rtpproxy_answer("wrie");
}
}
exit;
}
However this corrupts the SDP:
v=0
o=tismi 652858233 652858233 IN IP4 10.41.0.21*18X.4X.XXX.XX*
s=Some server
c=IN IP4 18X.4X.XXX.XX
t=0 0
m=audio 57644 RTP/AVP 8 0 18 3 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv
a=nortpproxy:yes
When I do not substitute the SDP looks perfectly fine and the external
address shows as the IN IP4. But of course the version is incremented:
v=0
o=tismi 1606876535 *1606876536* IN IP4 *18X.4X.XXX.XX*
s=Some server
c=IN IP4 18X.4X.XXX.XX
t=0 0
m=audio 55410 RTP/AVP 8 0 18 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv
a=sdpmangled:yes
The ericsson is now accepting this (although it's corrupt, I know....
probably the ACME doing something funky with it), but it causes issues
with another unknown piece of equipment that fails on parsing the
session owner. I hope there is something wrong with my subst, but I'm
afraid I can not do this from the on_reply route because SDP is only
updated once it finishes?
I know it's dangerous to alter the session version like this, so I made
sure the Asterisk will never send a re-INVITE. Now I need a way to not
corrupt the o=
Kind regards,
Matthias van der Vlies
Hi Everyone,
Does anyone have a example of the config where I can get the following to work
I want Kamailio to process websocket converting wss to tcp and srtp to rtp and forward to asterisk as tcp and rtp
incoming call on websocket (wss rtp/savpf) --> kamailio/rtpproxy (protocol - convert wss to tcp) and (sdp - convert rtp/savpf to rtp/avp) and (audio - convert srtp to rtp) --> asterisk (recieve protocol: tcp, sdp: rtp/avp and audio:rtp)
This application would only have incoming call from websocket to forward on to asterisk.
Hello all,
I cannot find documentation on how to configure Kamailio to interwork with
another operator's IMS Core.
I think the s-cscf should be in charge of detecting a user is not known
locally, in order to route requests toward other operator.
Do you know where I should look to get infos on this topic ?
Thank you!
Hi All,
I am attempting to setup a standalone redirect server which will lookup
contact info and redirect to appropriate outbound proxy.
The problem I am having is that the registrar is storing the path and
recieved information, however, when I perform a lookup and reply with
302, the recieved and path information is not included.
Are there module parameters in the registrar module that will include
these contact parameters (recieved) or create the appropriate headers
(path/route) in the 302 response, or, is this something I need to do
manually.
Currently I have the following lookup code:
route {
t_check_trans();
if ( method == "INVITE" ) {
xlog("route[MAIN] : $rm : ruri=$ru");
xlog("route[MAIN] : $rm : lookup=sip:$rU@registered.domain");
if ( lookup("location", "sip:$rU@registered.domain") ) {
send_reply("302", "Moved Temporarily");
exit;
}
}
}
I had a look at the path_mode parameter but this looks like it only
takes affect for REGISTER methods.
The INVITE that comes in supports the PATH header but I dont see this
being passed back. In fact, I'm not entirely sure if the path header is
a supported header in the 302 response message. I had a quick google and
I cant seem to easily find what headers are suported in the 302 message,
and where I need to put the path/recieved information. I presume I can
add the recieved info as a parameter to the contact header, but how
would i specify the outbound proxy to use, would that be in a route or a
path header in the 302 response?
I can see that the $du pseudo variable is set with the appropriate
outbound path and received information, now I just need to include this
information in the 302 response.
Any suggestions/comments to assist in how I get this info into the 302
message would be greatly appreciated.
Thanks in advance.
Kamailio - 4.2.2 ( SIP server )
Rtpproxy - Git Compiled ( miconda patched version )
Issue:
Remote NAT Call
Bria Rmt Iphone SIP Extn (3G) ----> Kamailio Server -----> Desktop Bria
Client ( Wifi )
Audio and Video packets are sent from iPhone to desktop client .. but
nothing otherway
Also, being totally new to kamailio I can't figure out logging SIP messages
( INVITE etc ) ..
Kindly if anyone can help
Thank You
Best,
Chirag A.