Hi!
Currently we have the following logic in our Kamailio routing script.
On incoming INVITE, we lookup() the location of called party, then we
analyse the updated Request-URI ($ru) regarding callee contact
protocol: is it websocket-based or not, to distinguish web-based
useragents from classic SIP agents and provide RTP profiles
interconnection with rtpengine (RTP/SAVPF for web-based, RTP/AVPF for
the rest). After that, we relay the mangled INVITE to callee
location(s) with t_relay().
The issue arises when callee has both websocket-based and classic
useragents registered simultaneously. According to lookup() manual, it
replaces Req-URI with just one contact, and somehow also attach
metainformation about additional locations, so that t_relay() forks
the call.
lookup() does not provide the possibility to fork the execution of
routing script, so that we could execute our routing logic described
above. But I would love this to be possible, because the only
alternative way for calling to multiple locations seems to be the
serial forking described in TM module manual. But we don't need serial
calling contact-by-contact, waiting for call failures, we need
parallel calling to all available user locations.
So we need an advice how to go. Is there a way to implement what we
need at scripting level, or should this feature be implemented in
Kamailio code (or is it already there?).
Thanks in advance for any help.
--
Andrey Utkin
Hello,
I'm using LCR module to send multiple choices.
Everything works fine so far , yet I have a problem that last gateway comes
first, then gateways are ordered correctly.
Below is correct sorting of gateways:
First gateway : 192.168.26.4
Second gateway: 192.168.26.1
Third gateway : 192.168.26.6
Below is Invite response I'm getting, as you can see 192.168.26.6 (last
gateway) is included as the first gateway , then 192.168.26.4 (first
gateway) comes next.
Via: SIP/2.0/UDP
192.168.26.3:37066;branch=z9hG4bK-d8754z-885c37410729cc3b-1---d8754z-;rport=
37066;received=192.168.26.3
To:
"9612"<sip:9612@192.168.110.181>;tag=b27e1a1d33761e85846fc98f5f3a7e58.8d8f
From: "5000"<sip:5000@192.168.110.181>;tag=aa37be29
CSeq: 1 INVITE
Call-ID: NTY0YjVmYzZiNzc3ZDA3ZDA3MmM0OGM1ZDBhZGZhNTM.
Contact: <sip:9612@192.168.26.6>, <sip:9612@192.168.26.4>,
<sip:9612@192.168.26.1>, <sip:9612@192.168.26.6>
Below is routing block I'm using :
if (is_method("INVITE"))
{
if (!load_gws(1, $rU, $fu))
{
sl_send_reply("502", "Unable to load Gateways");
exit;
}
else while(next_gw())
{
append_branch();
}
sl_send_reply("300","Multiple Choices");
exit;
}
Appreciate your help.
Regards,
Ali
I am trying to use cnxcc for credit control . It seems like dialog and
cnxcc modules are getting out of sync. For some reason , I see
cnxcc.active_clients gets stuck and they never clear up. Interestingly
only calls that gets failure 5xx and 4xx from PSTN gateway gets stuck,
all successful calls are cleared . I have made sure , I have
setflag(DLG_FLAG) 1st line in my routing logic. If you need my routing
script, I can share with you .
Am I missing anything obvious?
As you can see , "dlg.list" is empty, ( no calls in progress in system.)
kamcmd> dlg.list
kamcmd>
But , two user are stuck ( 1 with 6 calls in progress and another with 2
calls in progress)
kamcmd> cnxcc.active_clients
client_id:917044056840,number_of_calls:6,concurrent_calls:0,type:1,max_amount:0.000000,consumed_amount:0.000000;
client_id:971554578191,number_of_calls:2,concurrent_calls:0,type:1,max_amount:0.000000,consumed_amount:0.000000;
Here are the call dumps for both users.
kamcmd> cnxcc.check_client s:971554578191
id:0,confirmed:no,local_consumed_amount:0.588000,global_consumed_amount:0.000000,local_max_amount:7.690000,global_max_amount:0.00000
id:1,confirmed:no,local_consumed_amount:0.588000,global_consumed_amount:0.000000,local_max_amount:7.690000,global_max_amount:0.00000
kamcmd>
kamcmd>
kamcmd> cnxcc.check_client s:917044056840
id:0,confirmed:no,local_consumed_amount:0.588000,global_consumed_amount:0.000000,local_max_amount:9.990000,global_max_amount:0.00000
id:1,confirmed:no,local_consumed_amount:14.100000,global_consumed_amount:0.000000,local_max_amount:9.990000,global_max_amount:0.0000
id:2,confirmed:no,local_consumed_amount:14.100000,global_consumed_amount:0.000000,local_max_amount:9.990000,global_max_amount:0.0000
id:3,confirmed:no,local_consumed_amount:14.100000,global_consumed_amount:0.000000,local_max_amount:9.990000,global_max_amount:0.0000
id:4,confirmed:no,local_consumed_amount:14.100000,global_consumed_amount:0.000000,local_max_amount:9.990000,global_max_amount:0.0000
id:5,confirmed:no,local_consumed_amount:0.588000,global_consumed_amount:0.000000,local_max_amount:9.990000,global_max_amount:0.00000
kamcmd>
Hi,
I'm using LCR module in Kamailio , where matching of the rule (From-URI in
LCR-rule table) is currently based on user part of sip address in From field
(highlighted below in blue).
While we need to change the identification to be on the otg value sent in
the sip address in From field (highlighted below in yellow).
INVITE sip:86532917453592@172.16.5.108:5060
<http://sip:86532917453592@172.16.5.108:5060> SIP/2.0
Via: SIP/2.0/UDP 172.16.5.112:5060;branch=z9hG4bK1sansay9906915rdb2243
Via: SIP/2.0/UDP 216.53.4.5:5060;branch=z9hG4bK_1852370774_4741_1
Record-Route: <sip:sansay9906915rdb2243@172.16.5.112:5060;lr;transport=udp>
To: <sip:86532917453592@69.41.186.186:5060
<http://sip:86532917453592@69.41.186.186:5060> >
From: <sip: <http://sip:+249964642906@216.53.4.5:5060>
+249964642906@216.53.4.5:5060;otg=024050>;tag=1852370774_C
Call-ID:
sbcsipuac.2_169.132.137.51_b55sb12_1_1_2015052909455960_1852370774_487698
CSeq: 1 INVITE
Contact: <sip:+249964642906@216.53.4.5:5060
<http://sip:+249964642906@216.53.4.5:5060> >
P-Asserted-Identity: <sip:+249964642906@216.53.4.5:5060
<http://sip:+249964642906@216.53.4.5:5060> >
Privacy: none
User-Agent: VCS 5.9.2.42-01
Allow: INVITE, ACK, CANCEL, BYE
Max-Forwards: 69
Content-Length: 0
How can we achieve this ?
Any help will be appreciated.
Regards,
Ali
Hello list!
Have some difficulties with RTPengine:
My test scheme is: UA(WS) -> Kamailio (WS proxy) -> Kamailio (SIP REGISTRAR,
proxy) -> ASTERISK (media server) -> UA (SIP)
Kamailio (WS) use RTPengine.
Kamailio (WS proxy) - 4.2.3
Kamailio (SIP REGISTRAR, proxy) - 4.1.4
RTPengine - 3.3.0.0+0~mr3.8.0.0
I make a test call and have troubles in negotiation between UA(WS) ->
Kamailio (WS proxy):
UA(WS) -> INVITE -> Kamailio WS
......
rtpengine_manage("trust-address replace-origin replace-session-connection
ICE=force");
......
this INVITE consists in SDP section a=fingerprint:sha-256......
When Kamailio (WS) receives 200 OK, it is also handled by RTPengine
.......
rtpengine_manage("trust-address replace-origin replace-session-connection
ICE=force");
.......
but UA (WS) receives 200OK without fingerprint, and log an error:
Failed to set remote answer sdp: Called with SDP without DTLS fingerprint.
Currently spend a lot of time reading Kamailio/RTPengine
documentation/mail-list - but without success
If someone have some hints, I would appreciate any help.
--
View this message in context: http://sip-router.1086192.n5.nabble.com/RTPengine-Kamailio-200-OK-without-D…
Sent from the Users mailing list archive at Nabble.com.
Hi,
I was wondering if Kamailio support RFC 6140 to register Addresses of Record (AORs) in bulk map to a unique set of contacts.
REGISTER sip:kamailio.example.com SIP/2.0
Via: SIP/2.0/UDP 198.51.100.3:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
To: <sip:pbx@kamailio.example.com>
From: <sip:pbx@kamailio.example.com>;tag=a23589
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Proxy-Require: gin
Require: gin
Supported: path
Contact: <sip:198.51.100.3:5060;bnc>
Expires: 7200
Content-Length: 0
Thanks,Al
when kamailio forwards invite request, it adds to it a new via header.
for example, incoming invite:
SIP/2.0/TCP 192.168.43.192:48089;branch=z9hG4bK4e1ab219cbde6190;rport
outgoing invite:
SIP/2.0/TCP 192.98.102.10;branch=z9hG4bK27b9.597e97c43da7ddd6be8520b662d616b9.0;i=5
SIP/2.0/TCP 192.168.43.192:48089;received=192.98.102.10;branch=z9hG4bK4e1ab219cbde6190;rport=49582
is it somehow possible to find out in the config script, what will the
branch value of the new via header be?
if that value would be known, it could be assigned to rtpengine
extra_id_pv pseudo variable before making the offer and could then be
used in rtpengine_delete to delete the right branch.
if the new via branch value cannot be known, any suggestions on how to
uniquely identify the outgoing branched of the invite?
-- juha
I am trying to setup a really simple (I hope so) IMS platform, with
some basic services (like voicemail, IVR, videoconference), but I'm kind
of stuck.
I have installed Kamailio IMS on debian and a OpenIMS VM also. But my
little problem begins when I try to configure a application server (in
this case, a TAS). I have tried with Elastix 3.0 (kamailio+asterisk),
asterisk alone, and read some about Restcomm.
For Elastix and asterisk, I get stuck trying to setup the trigger
point. For Restcomm, I only find documentation for integration with
Clearwater IMS.
So, I need your help. Somebody has something like that working? What
TAS (or components for a TAS) do you recommend? Tutorials, examples,
manuals that you know can help me?
Thanks for reading, and many many thanks for any advice.
David