Hello All,
When Kamailio sends a '200 OK' to Asterisk, it is putting its Public IP into the Record-Routes. In Asterisk 14.6, it would send the 'ACK' back to the Private IP Address of Kamailio, but Asterisk 15.x is using the Public IP Address that Kamailio placed in the Record-Routes so...
Is there a way to force Kamailio to set the Record-Route to its Private IP address of the first Record-Route in messages forwarded to Asterisk?
Thank you?
Hi guys,
I've a question on using rtpengine with kamailio
*scenario*:
kamailio istance with rtpengine enabled and configured in localhost (but
with a remote rtpengine is the same)
modparam("rtpengine", "rtpengine_sock","udp:localhost:22222")
kamailio version 4.4.6 + rtpengine version 6.3.0.0 running on Ubuntu 16.04
when I start kamailio I see a lot of INFO log rows like that
May 22 12:13:12 my-dev /usr/sbin/kamailio[3388]: INFO: rtpengine
[rtpengine.c:2546]: rtpp_test(): rtp proxy <udp:localhost:22222> found,
support for it enabled
May 22 12:13:12 my-dev /usr/sbin/kamailio[3397]: INFO: rtpengine
[rtpengine.c:2546]: rtpp_test(): rtp proxy <udp:localhost:22222> found,
support for it enabled
...
more to the point.
I see always 24 rows for each rtpengine_sock configured
i
n rtpengine.c I find the rtpp_tes function and that's fine, but why 24
times?
thanks a lot
--
Giovanni Tommasini | evosip
web: evosip.cloud
Hi,
We use kamailio as a backend for JSSIP based WebRTC UAs.
We use SIP over Weboscket as transport and everythings work fine generally.
Some websocket connections to kamailio drop during an active call and JSSIP
reconnects immediately. New websocket connection has a different port than
the dropped one but kamailio tries to send to old websocket port which is
not active anymore.
We use GRUU and configured all the related parameters in registrar, dialog,
tm, websocket, tls, xhttp and userloc modules both for versions 4.4 and 5.1
but couldn't find a solution yet.
For a typical call below are the ordered events:
1. UA register to kamailio over wss (Code: WS1)
2. Kamailio send an INVITE to the UA (Code: Call1)
3. UA answer and media starts
4. UA drops WS1 to kamailio and reconnect (Code: WS2)
5. UA has an active websocket (WS2) to kamailio
6. Kamailio tries to send BYE message of Call1 to WS1 which is no longer
active and complains that websocket could not be found
7. Kamailio send an INVTE to the UA (Code: Call2) over WS2
8. UA answer and media starts
9. Kamailio send BYE message of Call2 to UA over WS2 and everything work as
expected (No websocket drop)
Error log:
WARNING: <core> [msg_translator.c:2761]: via_builder(): TCP/TLS connection
(id: 0) for WebSocket could not be found
I think we need a mechanism that will update the dialog information of
Call1 to use WS2 after reconnection.
Any help greatly appreciated.
Thanks.
Hi,
Looking for some help/ advice on updating the expiration timer/ values in a hash table when when [htable:expired:<table>] occurs.
On startup my script successfully reads in a set of entries from a DB; I also know from testing/ tracing that I can add new entries to the hash table in request_route. My issue occurs when the expiration timer kicks in - my goal was to re-read from the DB to ensure either the entry still exists or hasn’t changed and either delete, update or refresh the value until the next time the expiration event occurs. This way entries in the DB could be modified overtime.
At the moment all that’s occurring is that in the event_route[htable:expired:cli] block the entries are being drained one-by-one. I re-read the row from the from the DB and I reset the value using $sht(cli=>$shtrecord(key)) = $xavp(cli=>MAPPED_CLI); I’ve also tried updating the expiration timer against the key. I’ve tried both $shtex(cli=>$shtrecord(key)) = 60 and $shtex(cli=>$shtrecord(key)) = $TS+60 [the latter based on the values shown from sht_print()] but the entries still get deleted.
I’ve tried this against both 5.1.0 & 5.1.2.
Any help appreciated.
Thanks
David Heath
Hello all,
I've been hitting a wall in getting T.38 fallback to G.711 to work in a
specific case, and I was wondering if I could use kamailio to the rescue,
since all my other endeavours have failed miserably.
In short, this is this the scenario where I need to have this manipulation
happen:
- During an established dialog between a SIP endpoint and asterisk (with
kamailio in the middle acting as proxy), the latter (asterisk) sends a
re-INVITE with a single offer for m=image with T.38 in the SDP.
- The other (eccentric) endpoint (yes, it's a Cisco) replies with 200 OK,
but will reject the T.38 offer in the SDP body instead by including a port
number of '0'
- Instead of falling back to G.711 as configured, asterisk in that case
will do nothing, and the dialog will eventually end with a BYE (don't
remember which of the two endpoints will send that, but it doesn't matter
much)
The thing here is that asterisk *WILL* fallback to G711 with a second
re-INVITE, if the other endpoint replies to the first T.38 re-INVITE with a
negative response (488) instead of a positive one (200) declining the media
in the SDP body. I've looked at using freeswitch for a fax gateway instead,
but apparently FS doesn't support fallback at all even in the 488 reply
case, much less in the inactive media stream in 200 OK corner case I'm
investigating.
So, I thought I'd do that in kamailio and convert those 200 OKs to 488s
with change_reply_status() from the textopsx module. Of course, the
universe hates me, and this will fail spectacularly:
> ERROR: textopsx [textopsx.c:301]: ki_change_reply_status(): the class of
provisional or positive final replies cannot be changed
So you can't change a reply's "class" with change_reply_status(), only the
response code within that class can be manipulated.
I guess my question is now whether there is any way to do this sort of
transformation with kamailio, perhaps with some other function or method?
If anyone else has had to deal with this problem and come up with a
different solution I'd be glad to hear it, as neither my head nor the
surrounding walls can take any more mutual banging at this point. Thanks!
BR,
George.
P.S. I hate fax
Hi All,
Could you please provide the charging related Information in Kamailio. ie
list of Charging protocol/standard Kamailio Support ??. As per the kamailio
modules(ims modules) , Kamailio support Diameter.Is there any other
standard/interface Kamailio support.??
Thanks,
amit
ERROR: <core> [core/pvapi.c:1452]: pv_printf(): no more space for spec value
ERROR: <core> [core/pvapi.c:1461]: pv_printf(): buffer overflow -- increase the buffer size...
I have
pv_buffer_size=16384;
tcp_rd_buf_size=16384;
Any ideas?
Thank you,
Hi All,
I am using Kamailio 5.2 and Asterisk (14.6 & 15.x) and I am having a very strange issue. If I use Asterisk 14.6, the call (WebRTC<=>WebRTC) works perfectly. However, if I use Asterisk 15.x, the call drops in 30 seconds. In comparing tcpdump files, the first place I see a difference is in the '200 OK' response to Kamailio' s 'INVITE to Asterisk'; in Asterisk 15.3 the first record Record-Route is Kamailio Public IP Address, however, in the Asterisk 14.6 (the working call) it is Kamailio' s Private IP Address. Asterisk Developers told me it is Kamailio doing this...and I am confused. Is this true, and if so why would it be different based on the Asterisk version?
Thank you!
Hello list
recently i faced strange behaviour when dealing with ng-voice version of
kamailio ims
specially in P-CSCF node, the database "pcscf" dropped suddenly (deleted)
without any command or action from user
this happened many times
and unfortunately there is nothing in the syslog as error massages
Any advice please ?
Thanks
Cheers,
Ammar
Hello,
I am using Kamailio 5.2 and Asterisk 15.3 and while doing a WebRTC (client1) to WebRTC (client2) call, Asterisks sends a re-invite and Kamailio responds with a '200 OK', but when Asterisk sends back the "ACK" to Kamailio, it cannot be relayed.
Errors =>
WARNING: <core> [core/msg_translator.c:2767]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found
ERROR: <core> [core/msg_translator.c:1982]: build_req_buf_from_sip_req(): could not create Via header
ERROR: <core> [core/forward.c:549]: forward_request(): building failed
ERROR: sl [sl_funcs.c:362]: sl_reply_error(): stateless error reply used: I'm terribly sorry, server error occurred (1/SL)
As a side note, I still occasionally see the Errors =>
ERROR: <core> [core/pvapi.c:1452]: pv_printf(): no more space for spec value
ERROR: <core> [core/pvapi.c:1461]: pv_printf(): buffer overflow -- increase the buffer size...
No matter how large I make pv_buffer_size, and tcp_rd_buf_size; pv_buffer_size=16384, and tcp_rd_buf_size=16384;
Thank you all!