JSLEE Discussions
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Messages posted by: cts-aflorczak
Forum Index » Profile for cts-aflorczak » Messages posted by cts-aflorczak
Author Message
Hi Ben,

I should have taken a look at the snoop rather than asking questions :).
Many thanks for prompt answer.


I've a question regarding generating ACK to INVITE error responses using Easy SIP RA (SIS).
I'm trying to create ACK using SipResponse createAck() method:

But I'm getting java.lang.IllegalStateException: INVITE not currently in progress, cannot create ACK - as in the exception below.

Can anyone please let me know why is this exception occuring? How to create ACK request for error INVITE response?

2016-09-06 19:44:58.131 Finest [trace.service_1_0] <jr-2> [service/B2BSbb] QVb5SbnmwQHfySyQQDCNqw received response:SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP;oc-node=101;rport;branch=z9hG4bKOEVibLesSEGnxqu-kTaSXg
From: <sip:+48660796128@abcd.com>;tag=2flHZw
To: <sip:+98436769669154@abcd.com;user=phone>;tag=i9hwCg
Call-ID: SbARQD-3rBJEO1iXSgtv-A
CSeq: 245423 INVITE
Content-Length: 0

2016-09-06 19:44:58.131 Warning [trace.service_1_0] <jr-2> [service/B2BSbb] QVb5SbnmwQHfySyQQDCNqw INVITE not currently in progress, cannot create ACK
2016-09-06 19:44:58.131 Fine [trace.service_1_0] <jr-2> [service/B2BSbb] QVb5SbnmwQHfySyQQDCNqw Failed to send ACK!
java.lang.IllegalStateException: INVITE not currently in progress, cannot create ACK
at com.opencloud.ob.sipsis.easysip.K.a(
at com.opencloud.ob.sipsis.easysip.K.createRequest(
at com.opencloud.ob.sipsis.easysip.r.createAck(
at b2b.B2BNwEventsHandlerSbb.processErrorResponse(B2BNwEventsHandlerSbb.java:724)
at b2b.B2BNwEventsHandlerSbb.onErrorResponse(B2BNwEventsHandlerSbb.java:416)
at com.opencloud.rhino.deployed.sbb.B2BSbb_1_0.SbbOCBBBean.sbbDeliverEvent(SbbOCBBBean.java:396)
at com.opencloud.deployed.Service_service_1_0_181.SBB_B2BSbb_1_0OCBB_Local.sbbDeliverEvent(SBB_B2BSbb_1_0OCBB_Local.java:2088)
at com.opencloud.ob.Rhino.uz.a(2.3-1.32-c5fd35b:171)
at com.opencloud.ob.Rhino.uz.a(2.3-1.32-c5fd35b:143)
at com.opencloud.ob.Rhino.uz.h(2.3-1.32-c5fd35b:95)
at com.opencloud.ob.Rhino.AD.run(2.3-1.32-c5fd35b:89)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at com.opencloud.ob.Rhino.bq$a$a$a.run(2.3-1.32-c5fd35b:440)

Hi Seteven,

Thanks for the solution.
I thought that there might be some SIS-SIP API level access to it, but just couldn't find it.


I've browsed through the Diameter documentation, but I couldn't find any answers regarding particular SCTP peer configuration. For the server it seems clear, there is a primary and secondary listen address, but for the peer..?

Current configuration exposes a peer as defined:
<!ELEMENT peer ( uri?, hostname?, port?, address?, tls?, valid-dn?, host-ip-address*, option* )>

It is possible to define a hostname, and provide the address - single address only.
The issue with SCTP multihoming is that all IPs are retrieved in INIT_ACK message, but the INIT message is send only to the single IP as defined in the peer element.
Given that server has 2 SCTP IPs, we'll still send the INIT message to a sginle IP (as defined in the peer), if this interface is down, we can not establish a connection even though there is a secondary IP that we could use.

Is it possible to define primary and secondary IPs for a peer?
I'd like to avoid setting up 2 peer connections, one for the primary IP and 2nd for the secondary IP - dunno if it would work anyway.

Thanks Charlie,

Sentinel rings a bell, I must have seen it there.
For sure it will come handy.

It just came to my mind, that in a number of offers from various operators, there usually is a nice to have requirement of querying the system for active sessions, or querying a specific MSISDN/IMSI session.
I understand this is a protocol and service specific, but maybe it would be feasible to expose some query over SBBs, or better, activities with given MSISDN/IMSI or generic parameter?

Let's say that we would write a shell script that retrieves all SBBs (e.g. findsbbs -service -sbb), and then retrieves the diagnostics of each SBB one by one, by invoking getsbbdiagnostics. How would this degrade the performance? Is the whole entity tree being locked when invoking getsbbdiagnostics?


I've found the getsbbdiagnostics command in rhino console, but the sbbs I have provide no diagnostic information.

Is there some publicly available interface, that could be implemented by Sbbs in order to expose this information?

Hi Charlie,

Thanks for the info, good to know it's coming.
Is the Sentinel 2.3 release date already known? When could we expect this feature in Sentinel 2.2?
Is there a Sentinel roadmap somewhere? It would be nice to get to know all the new Sentinel features.

Sorry for so many questions :).


We have a couple of scenarios that seem not to fit in Sentinel SS7, and wanted to clarify if it's possible to handle.

We want to handle call forwarded scenarios in the same sentinel session.
So MT call is started and processed, Sentinel performs initial reservation, arms BCSM events, and waits for the call to be answered - we're in the MidSession, monitoring the call.
Call is not answered/busy or whatever the reason is, and we want to forward the call to some FTN. So we need to re-rate the call, re-arm the BCSM events, and issue CONNECT to TFN and further monitor the call.

I know that there are some features that issue CONNECT with oCSIApplicable to re-trigger the MF, and process it in Sentinel anew. But we'd like to handle this in the same "MT" Sentinel session.

Main question is... is it possible to handle the call in the same Sentinel session after receiving Busy/noAnswer event?
Is it possible to extend Sentinel with the SDK to fulfill such scenarios?

Thanks for the clarifications Oliver.
We'll try to get to the bottom of this once we have the thread dump.

Thanks Oliver,

We'll do that next time, maybe we'll be able to find some suspicious thread.
I was wondering if there is some SLEE or Rhino way of inspecting those kind of things? Rhino seems to know who is the owner of the lock, is it possible to retrieve some information based on this transaction ID? Maybe there is a way to dig something out from management DB - this is where distributed lock is stored right?

To get better understanding of it, could you confirm my reasoning?

LOCK_MANAGEMENT lock is acquired each time a management command is invoked, e.g. activating RA entity, or changing the tracer level. It's a kind of cluster state lock?
I suppose that this state change is done within a transaction - as in the exception below, lock is currently occupied by a transaction.
Shouldn't the transaction that is holding the lock for too long timeout and rollback releasing this lock?

Having a situation, when some custom code is invoked on management operation (e.g. deactivating RA entity), and a thread gets stuck lets say on raStopping(), would it cause the transaction to be rolled back after some time?

Am I going in the right direction trying to sort this out?

Sorry for being a bit nosy - just trying to get the big picture of it:).


I've configured a rate limiter with 100 RATE per SECOND, and connected it to cgin input endpoint.
What I wanted to achieve with it, was not to exceed 100 incoming dialogs per second.
I've run rhino-stats to monitor limiter usage when running scenario simulator with following scenario

I was supprised to see that one dialog as above, made the limiter to use 5 units!

I've tried to find some information about CGIN limiting, but haven't found any answers to my questions...

How does CGIN RA limiting works? Why does it consume 5 units in the case above? Is there a way to limit number of incoming OpenRequests only?

Forum Index » Profile for cts-aflorczak » Messages posted by cts-aflorczak
Go to:   
Powered by JForum 2.1.8 © JForum Team