Hello,
My setup includes a cellphone that uses Wi-Fi to hookup to the internet
with IP 192.168.1.101. Cellphone app, tries to register with VOIPSwitch
through an outbound proxy server(Kamailio + rtpproxy), which rewrites SDP
to force rtp through an rtpproxy.
I can make a call from the cellphone to a PSTN number. When the PSTN
endpoint hangs up, VOIPSwitch relays a BYE message to the proxy that looks
like :
No. Time Source Destination Protocol Info
27 18.383929 IPaddr_VoipSwitch IPaddr_proxy SIP
Request: BYE sip:1234@IPaddr_VoipSwitch
Frame 27 (420 bytes on wire, 420 bytes captured)
Ethernet II, Src: Unispher_40:b5:39 (00:90:1a:40:b5:39), Dst:
Supermic_bd:b9:bc (00:30:48:bd:b9:bc)
Internet Protocol, Src: IPaddr_VoipSwitch , Dst: IPaddr_proxy
User Datagram Protocol, Src Port: sip (5060), Dst Port: 7160 (7160)
Session Initiation Protocol
Request-Line: BYE sip:1234@IPaddr_VoipSwitch SIP/2.0
Method: BYE
[Resent Packet: False]
Message Header
Route: <sip:IPaddr_proxy:7160;lr=on;nat=yes>
CSeq: 1 BYE
Via: SIP/2.0/UDP IPaddr_VoipSwitch:5060;
branch=z9hG4bk180242100434182912333954
From: sip:5678@IPaddr_VoipSwitch;tag=18024210041929123187506289
Call-ID: LUOyIDm-ecy36NcUfj5G3v1lM6g5snkM
To: "1234"
<sip:1234@IPaddr_VoipSwitch>;tag=9XHJmiuf58vTrF7.vwflEK-G63JVPQSi
Content-Length: 0
The request URI in the above message is the IP address of VOIPSwitch
itself, which causes the proxy to forward the BYE message back to
VOIPSwitch. The cellphone never receives the BYE message and consequently
never hangs up.
Any suggestions on how i can get around this problem ?
Thanks and Regards,
Vikram.
Hello,
based on the outcome of the discussion carried in the thread:
http://lists.sip-router.org/pipermail/sr-users/2012-August/074480.html
I am looking again the clarify some aspects out there in the VoIP world.
So, as mainly dealing with proxy/sip signaling deployments, it's very
often to be the first one hit by support issues claiming things don't
work. Then you investigate and end up in conclusions like in the above
thread:
"The problem was at the SBC, __where I did not expect it__."
The underlined part heats me up a bit, because I never understood from
where it comes this perception that SBC is a MUST-TO-HAVE and the
PERFECT (never mistaken or breaking things) node in a VoIP networks.
To some extent, the SBC is just a very costly SIP ALG, and a SIP ALG is
there to break the things.
I don't want to start like a flame war, but is it something that I am
obviously missing in regards to what benefits a SBC can bring? I see
only inconveniences:
- another point of failure
- it is a b2bua, therefore very unlikely to offer the same performances
of a proxy
- if transcoding is needed, a media server can be used behind the proxy,
properly protected of attacks by the proxy and eventually deployed as a
farm load balanced by the proxy
- if topology hinding is wanted in the b2bua fashion (not the proxy
fashion with encoding headers), then the b2bua can be behind the proxy,
properly protected of attacks by the proxy and eventually deployed as a
farm load balanced by the proxy
- nat traversal was solved long time ago in proxy environment, being
scalable by deploying a farm of rtp proxy
I don't want to go to other features, including the transport layer,
it's a clear win of the proxy in my experience (ok, being deep involved
in this project).
Then, what makes the SBC so desirable in many companies/voip
deployments? If any SBC user here that can share, what was the reason to
buy such a device? Any conceptual functionality that cannot be achieved
with the proxy as the first hop in front of the (wild) clients?
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - http://asipto.com/u/kat
dear kamilio developers :
i read the kamilio 3.3.0' s new features , it say it support
outbound , and i have place to handle reg-id and sip.instance . so , i
wonder if the kamilio3.3.0 support RFC5626 now,so that the
kamilio can be used as a edge proxy . i ask why because i can't find where
kamilio add flow-token and path for the register request.
thanks
Hi All,
I'm observing a core intermittently at "qm_status (qm=0x786cd000) at
mem/q_malloc.c:763" for kamailio version 3.1.0
looking at the backtrace this is occurring while doing a tcp buffer
overrun. Please have a look and let me know if anyone observed this issue
or how can we debug it.
Please find the backtrace and kamailio version
osbprod-V2R0:~ # /usr/sbin/kamailio -V
version: kamailio 3.1.0 (i386/linux) 21a375
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC,
DBG_QM_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, PKG_SIZE 15MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 21a375
compiled on 12:38:44 Apr 26 2012 with gcc 4.5.0
#0 qm_status (qm=0x786cd000) at mem/q_malloc.c:763
#1 0x0819c0f3 in qm_debug_frag (qm=0x786cd000, f=<value optimized out>) at
mem/q_malloc.c:167
#2 0x0819c352 in qm_free (qm=0x786cd000, p=0x7a6cb6ac, file=0x821cce2
"<core>: tcp_main.c", func=0x822285f "wbufq_run", line=880) at
mem/q_malloc.c:457
#3 0x0815f686 in wbufq_run (tcpconn=0x7a1a7548, ev=4, fd_i=-1) at
tcp_main.c:880
#4 handle_tcpconn_ev (tcpconn=0x7a1a7548, ev=4, fd_i=-1) at tcp_main.c:4141
#5 0x08169bf2 in io_wait_loop_epoll () at io_wait.h:1092
#6 tcp_main_loop () at tcp_main.c:4606
#7 0x080b0404 in main_loop () at main.c:1655
#8 0x080b1f84 in main (argc=9, argv=0xbfb4c9f4) at main.c:2446
(gdb) l
758 LOG_(DEFAULT_FACILITY, memlog, "qm_status: ",
759 "dumping free list stats :\n");
760 for(h=0,i=0;h<QM_HASH_SIZE;h++){
761 unused=0;
762 for (f=qm->free_hash[h].head.u.nxt_free,j=0;
763 f!=&(qm->free_hash[h].head);
f=f->u.nxt_free, i++, j++){
764 if (!FRAG_WAS_USED(f)){
765 unused++;
766 #ifdef DBG_QM_MALLOC
767 LOG_(DEFAULT_FACILITY,
memlog, "qm_status: ",
Hello all,
I recently add a classical Audiocodes Mediant 2000 with 2x 8E1, the purpose
is to have several interconnections with PSTN.
I configured it like this :
Audiocodes registers as a gateway to the Kamailio, using a dedicated port
(5062).
Registration seems to be OK, and the pstn gw uses OPTIONS method to ping the
proxy.
I can attack the Audiocodes with a SIP phone behind Kamailio, no pbm.
But the audiocodes returns some errors about SIP headers sent by Kamailio :
( sip_stack)(44732 ) AcSIPParser: Problem in SIP Message Headers [Time:
12:30:26]
( sip_stack)(44733 ) !! [ERROR] AcSIPParser: Parse Error. Unexpected symbol
'0' in scheme. ALPHA expected
Here you have the example of an INVITE from a SIP phone to the PSTN :
** audiocodes debug **
4d:12h:30m:26s ( lgr_flow)(44730 ) ---- Incoming SIP Message from
77.246.81.132:5060 ----
INVITE sip:0323719001@77.246.81.136:5062;transport=udp SIP/2.0
Record-Route: <sip:77.246.81.132;lr=on;ftag=71078b346a20fb3eo0;nat=yes>
Via: SIP/2.0/UDP 77.246.81.132;branch=z9hG4bKdace.1ab1d59.0
Via: SIP/2.0/UDP
192.168.0.113:5060;rport=15170;received=77.246.81.162;branch=z9hG4bK-b432f96
From: "Sam" <sip:0123451010@sip.720.fr
<sip%3A0123451010(a)sip.720.fr>>;tag=71078b346a20fb3eo0
To: <sip:0323719001@sip.720.fr <sip%3A0323719001(a)sip.720.fr>>
Call-ID: 944d8aec-27503ee6(a)192.168.0.113
CSeq: 102 INVITE
Max-Forwards: 49
Contact: "Sam" <sip:0123451010@77.246.81.162:15170>
Expires: 240
User-Agent: Linksys/SPA941-5.1.8
Content-Length: 281
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER
Supported: 100rel, replaces
Content-Type: application/sdp
P-Asserted-Identity: <0123451010>
Remote-Party-ID: <0123451010>;party=caller;privacy=none;screen=yes
v=0
o=- 26933860 26933860 IN IP4 192.168.0.113
s=-
c=IN IP4 77.246.81.133
t=0 0
m=audio 35038 RTP/AVP 18 0 8 101
a=rtpmap:18 G729a/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:30
a=sendrecv
a=nortpproxy:yes
( sip_stack)(44732 ) AcSIPParser: Problem in SIP Message Headers [Time:
12:30:26]
( sip_stack)(44733 ) !! [ERROR] AcSIPParser: Parse Error. Unexpected symbol
'0' in scheme. ALPHA expected
( sip_stack)(44734 ) !! [ERROR] Message type: INVITE [Time: 12:30:26]
( sip_stack)(44735 ) !! [ERROR] Source header: [Time: 12:30:26]
( sip_stack)(44736 ) !! [ERROR] Line: 17. Column: 23 [Time: 12:30:26]
The outgoing INVITE from Kamailio is exactly the same received by the
AudioCodes.
When I searched over Google, I just found 2 answers about Asterisk /
Audiocodes unsolved problem, but no more informations.
I supposed that the problem is as indicated : " s=- " where source is empty
in place of "NULL" / "0" or something like this ...
Someone can confirm or already met the problem ?
Many thanks all :)
.Sam.
Hi all,
For a project on which I'm currently working, I am having some problems
figuring out how to correctly configure Kamailio to communicate with RTP
Proxy in order to send media into and out of a network with private IP
address ranges.
I have a proxy set up to send the SIP traffic, and all of this is
working fine. However, I'm having some trouble getting the RTP Proxy
set up. Currently, when the call is connected, the offer/answer is made
and RTP Proxy seems to be taking over, but I'm having trouble getting my
audio to flow in both directions.
Examination of the traffic coming into and out of this machine seems to
indicate that the IP addresses aren't being mangled correctly.
Specifically, it appears the internal IP address isn't being changed to
reflect the IP address of the machine on which RTP Proxy is running, so
that when the caller tries to send audio back, the IP it's given to
reply to is 10.10.x.x, which obviously won't work.
I have tried experimenting with specifically setting IP addresses in the
rtpproxy_offer() and _answer() methods to no avail, as well as setting
various flags in those methods. However, I must admit that I'm not
entirely sure what's happening under the hood with these methods, or
what rtpproxy is doing with that information when it gets it. Rather
than continue to hack at this by trial and error, I'm hoping someone
here can point me in the right direction.
Any advice, example code or pep talks would be greatly appreciated.
Thanks in advance,
--
Joe Hart
Voice Systems Integrator
Evariste Systems
Web : http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0673
Hello,
I'm using Kamailio 3.2.4 for NAT traversal using rtpproxy_manage() in a
largely stock script. Everything works great until the far end (on a public
ip) sends a t.38 re-INVITE. The 200OK from the NATed UAC then doesn't
trigger rtpproxy and the private IP in the sdp causes the fax to fail. Any
help handling these re-INVITEs would be greatly appreciated. I'm happy to
post traces if that helps describe the situation. The network topology
looks like this:
NATed UAC -> Kamailio on a public IP -> UAS on a public IP
Thanks in advance,
Spencer
Connected by DROID on Verizon Wireless
Hello to everybody.
I am currently working with Kamailio 3.3.1 on RedHat.
The "loose_route" function was not working correctly and I observed some very strange behaviour (not as one described in the documentation of the function).
I have found that there needs to be a port included in the "alias" variable for the loose_route function to work correctly.
However, upon adding the port to alias, the INVITE messages were no longer authenticated (Kamailio just accepted them and didn't send proxy-auth header in 407 message).
My alias:
alias="domain.ch:5060"
Examining default routing logic, I found the problem here:
if (is_method("REGISTER") || from_uri==myself)
{
# authenticate requests
...
}
The "from_uri==myself" was no longer evaluated as true, because there was a port at the end of the alias.
The FROM Header of the INVITE messages looks like:
From: "acc1" ;tag=12345
..so .. no port number there.
Btw, I have fixed this with replacing the "myself" list with my own defined variable MY_DOMAIN.
#!define MY_DOMAIN ".*(a)domain.ch"
So now the condition looks like this:
if (is_method("REGISTER") || from_uri=~MY_DOMAIN)
{
...
}
I am not sure if this is a bug that needs to be fixed or not. I am just pointing my finger at it and I hope it will contribute to the development.
Also, a valid description of this behavior (when using port in alias) would be appreciated.
Cheers,
Martin
Dears,
I have an installed 3CX where I want to generate a call from it to the
Kamailo to get a list of suppliers to terminate the call to.
Thus, the Kamailio should act as a sip redirect to the 3CX (for routing
decision).
Have you tried such configuration before? And how do I configure the 3CX on
the Kamailio?
Regards,
F Charour
Hi,
I would to query the Cassandra database for other information with either CQL or other commands.
Could this be done through means of either avpops or sqlops, like an MySQL database.
This could be done through an external script but I would like to utilize the connection that is already
established.
Thanks,
Bou