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.
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
Hi,
I'd like to implement a couple of helper functions for time handling,
e.g. checking day of week, day of month etc. from within the kamailio
config file. What would you prefer, a new module ("timeutils" maybe?) or
adding it to cfgutils (there are already time-based functions there like
sleep and usleep)?
The idea is to implement time based call-forwards, and an approach could
be to provision various time-related values in usr_preferences table,
and then check it in the config. For example, when doing call-forwards
from Monday to Friday only, I could put this into usr_preferences:
attribute: cf_weekday
value: [1, 2, 3, 4, 5] (each entry is a separate row in usr_preferences)
And in kamailio config, I'd call this:
avp_db_load(...);
if(is_weekday("$avp(s:cf_weekday)")) { do CF }
So is_weekday would iterate over the entries in the avp list and return
true if the weekday at the time of routing matches an entry in the list.
A module config param could control whether to use gmtime or localtime
for matching.
Does this make sense? Suggestions for other approaches? I'd rather
prefer to do it directly in config instead of using some external
interpreter like lua, python etc.
Andreas
Hello.
After upgrade kamailio and db, lcr module bad routing if entered *any
value*to from_uri column in lcr_rule table:
mysql> select * from lcr_rule where id=5;
+----+--------+--------+-------------------------------+-------------+---------+---------+
| id | lcr_id | prefix | from_uri | request_uri |
stopper | enabled |
+----+--------+--------+-------------------------------+-------------+---------+---------+
| 5 | 1 | yyyy | sip:x[xx]\d{2}@xxx.xxx.xx.xx | NULL |
0 | 1 |
+----+--------+--------+-------------------------------+-------------+---------+---------+
and load_gw(...) skip this rule, in log:
INFO: lcr [lcr_mod.c:1493]: skipping disabled <gw/rule> = <1/5>
If remove value from 'from_ui' - rule enabled and all work.
Why is turned off rule ?
Linux Debian squeeze, upgraded from "deb
http://deb.kamailio.org/kamailiosqueeze main"
--
"В связи с отсутствием интереса общественности, конец света отменяется" (с)
?
С Уважением, Механошин Алексей
Hi,
I'm using Kamilio 3.3.0 as registrar server. I`m using an outbound proxy
so 'use_path' parameter or 'registrar' module is enabled.
According to RFC 5626, a re-registration from a specific combination of
AoR, instance_id and reg_id must update the binding.
""
If the registrar receives a re-registration for a specific
combination of AOR, and instance-id and reg-id values, the registrar
MUST update any information that uniquely identifies the network flow
over which the request arrived if that information has changed, and
SHOULD update the time the binding was last updated.
""
In my installation this is not fullfilled as shown:
""
AOR:: jmillan
Contact:: sip:jmillan@MY_IP;transport=ws;ov-ob=a570655c14 Q=
Expires:: 181
Callid:: 1hgq3khalq2rzfr
Cseq:: 108
User-agent:: JsSIP 0.1.0
Path:: <sip:OUTBOUND_IP:9090;transport=tcp;lr;ovid=de0c0b9f>,<sip:a570655c14@OUTBOUND_IP
:10080;transport=ws;lr;ovid=de0c0b9f;ob>
State:: CS_SYNC
Flags:: 0
Cflag:: 0
Socket:: tcp:KAM_IP:5060
Methods:: 783
Ruid:: uloc-50119d99-328e-1
Instance:: <urn:uuid:38dce009-ae1f-4fd1-91dc-99ed9affddc1>
Reg-Id:: 1
Contact:: sip:jmillan@MY_IP;transport=ws;ov-ob=1dd97b4d51 Q=
Expires:: 193
Callid:: 1hgq3khalq2rzfr
Cseq:: 110
User-agent:: JsSIP 0.1.0
Path:: <sip:OUTBOUND_IP:9090;transport=tcp;lr;ovid=de0c0b9f>,<sip:1dd97b4d51@OUTBOUND_IP
:10080;transport=ws;lr;ovid=de0c0b9f;ob>
State:: CS_SYNC
Flags:: 0
Cflag:: 0
Socket:: tcp:KAM_IP:5060
Methods:: 783
Ruid:: uloc-50119d99-3290-2
Instance:: <urn:uuid:38dce009-ae1f-4fd1-91dc-99ed9affddc1>
Reg-Id:: 1
""
The scenario is such that when the client looses the connection with the
Outbound Server, it reconnects and re-registers to Kamailio in order to
replace registration and be able to receive in-dialog messages.
Any comment is wellcome.
Regards,
Hi,
We are getting "cannot allocate memory" error in the log file. I was wondering which one is the right way to increase the shared memory:
1) adding the following to /etc/openser/openserctl
STARTOPTIONS="-m 128"
2) modify the following in /etc/default/openser
MEMORY=1024
Thanks,AS