<div dir="ltr">Thank you Bogdan. I&#39;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">&lt;<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>&gt;</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&#39;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">&lt;<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>&gt;</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 == &quot;how long to keep the call
                  in parking&quot;. 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&#39;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">&lt;<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>&gt;</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 -&gt;
                                check in DB for parked calls -&gt; 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) -&gt;
                                from there you can create a new branch
                                to the newly registered user.<br>
                                <br>
                                I haven&#39;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>