<div dir="ltr">Thank you Bogdan. I'll try and implement this tomorrow and see how it goes.<div>Thanks again.</div><div><br></div><div>--- Jayesh</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 18, 2014 at 7:28 PM, Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div><tt>Jayesh,<br>
<br>
Using the t_was_cancelled() function in failure route will tell
you if the CANCEL was local or received from the caller side:<br>
<a href="http://www.opensips.org/html/docs/modules/1.11.x/tm.html#id295325" target="_blank">http://www.opensips.org/html/docs/modules/1.11.x/tm.html#id295325</a><br>
<br>
The call_center module is designed to reject calls if there is
no agent logged in. Even if we change that, to be sure the right
call is distributed to right agent, you will end up creating one
flow/queue per user, which is not really scalable.<br>
<br>
Regards,<br>
</tt><div class="">
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre></div><div><div class="h5">
On 18.06.2014 14:02, Jayesh Nambiar wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">Hi Bogdan,
<div>Thanks for your response. I get your idea of sending the
call to an unexisting destination which might work in my case.
Would the failure route have a way to distinguish between the
CANCEL generated by the script and the caller itself, such
that I might not end up trying to route a call to the callee,
when the caller has Cancelled it !!</div>
<div><br>
</div>
<div>Another hypothetical question which may or may not be
related:</div>
<div>I see a new callcenter module which queues the caller till
the call is answered by an Agent with registered endpoint.
Can't the callcenter module queue a call, if there are no
agents logged in?? Because if it can, it looks similar to the
problem I mentioned, which waits for the agent to be
registered and route the call as soon as the user registers
(logs in as an agent). </div>
<div><br>
</div>
<div>Just a thought for figuring out a neater solution to my
problem. Thanks for all your suggestions.</div>
<div><br>
</div>
<div>--- Jayesh</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Jun 18, 2014 at 2:51 PM,
Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div><tt>Hi </tt><tt>Jayesh,</tt><tt><br>
</tt><tt><br>
</tt><tt>I see your point - </tt><tt>if you do not want
to send media to the caller (while in park), when you
decide to park the call you can simply send back an
180 ringing and then relay to call to a fake </tt><tt>un</tt><tt>existing
destination with timeout == "how long to keep the call
in parking". That branch will timeout (as there is no
UAS) and return to failure route (if not picked up in
the mean while). if the target user registers in the
mean while, you do the cancel stuff as initially
described.</tt><tt><br>
</tt><tt><br>
</tt><tt>Once again, the b2b is not useful here - why?
as there you your handling is at transaction level
(call is not accepted, you play with multiple
branches) and not at call level (handling 1 or more
accepte</tt><tt>d calls)</tt>
<div><tt><br>
</tt><tt><br>
</tt><tt>Regards,</tt><br>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
</div>
<div>
<div> On 18.06.2014 08:42, Jayesh Nambiar
wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi Bogdan,
<div>Thanks for the reply. But the challenge with
me is that I don't want to use an additional
component like a Media Server in this setup. The
idea is to get away with too many components
which can act like point of failures. Hence I
was exploring the idea of parking the call in
Opensips itself and do the routing within
Opensips without the need of an external media
server.</div>
<div>Any possibility of this being done within
opensips?? And the only option that I can see
for this is the b2b modules. </div>
<div><br>
</div>
<div>--- Jayesh</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote"> On Tue, Jun 17, 2014 at
8:44 PM, Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div><tt>Hi Jayesh,<br>
<br>
For such scenario you do not need b2b at
all. You can do it at signaling level.
How ?<br>
- determine that the incoming call needs
to be parked<br>
- send the call to a media server to
play some ringing via 183 early media
(call still not accepted); also push DB
record to with the callid + user the
call belongs to;<br>
</tt><tt>- if target user registers ->
check in DB for parked calls -> if
yes, run a script to trigger the
cancelling of that branch to media
server (see t_uac_cancel MI command <a href="http://www.opensips.org/html/docs/modules/1.11.x/tm.html#id295912" target="_blank">http://www.opensips.org/html/docs/modules/1.11.x/tm.html#id295912</a>)
<br>
- original call will go into failure
route (because of the canceling) ->
from there you can create a new branch
to the newly registered user.<br>
<br>
I haven't tried, but it should work :)<br>
<br>
Regards,<br>
</tt>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
<div>
<div> On 17.06.2014 12:57, Jayesh
Nambiar wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div>
<div dir="ltr">Hello All,
<div>I was trying to explore an
option of parking a call on
opensips using b2b modules with a
trying or ringing response. More
precisely, I was trying to do
something like this:</div>
<div><span><a href="http://lists.opensips.org/pipermail/users/2010-October/014849.html" target="_blank">http://lists.opensips.org/pipermail/users/2010-October/014849.html</a><br>
</span></div>
<div><span><br>
</span></div>
<div>As soon as the call comes in,
use b2b_logic to park the call. If
the called user is registered,
route the call; else keep the
caller parked for 45 seconds, and
within this duration if the called
user registers, raise a
E_REGISTERED event.</div>
<div>Identify if there is a call
parked for the user that just
registered and if yes route the
call or else respond with 408
timeout to the caller.</div>
<div>I thought, it should be
possible using the b2b modules and
the event interface that
opensips got. Am I thinking in the
right direction from possibility
perspective?? Can someone help me
understand if this logic can be
implemented within the script??</div>
<div><br>
</div>
<div>Thanks in advance,</div>
<div><br>
</div>
<div>--- Jayesh</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div>
</div>
<pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>