<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 class=""><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 class="h5">
      On 18.06.2014 08:42, Jayesh Nambiar wrote:<br>
    </div></div></div><div><div class="h5">
    <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>