Just tested the AVP method and that is a lot cleaner since CallerC's INVITE with the Replaces header gets canceled way before the failure_route sets the new branch to CallerC.  This method also doesn't give me the issue that I was seeing in the last method where CallerA hung up and CallerC still thought CallerA was on the phone.
<br />Here is what I did
<br />
<br />RouteX
<br />if(search(&quot;^Replaces:.*;&quot;)){
<br />        $var(Replacesb2b) = $(hdr(replaces){s.select,0,;});  
<br />        exec_msg(&quot;/usr/local/sbin/opensipsctl fifo t_uac_cancel $var(Replacesb2b) 2 &gt; /tmp/test.txt&quot;);
<br />      
<br />        t_reply(&quot;404&quot;, &quot;All Good&quot;);   &lt;----------- Can you think of anything better to do here?
<br />        exit;
<br />};
<br />
<br />
<br />
<br />Failure_Route
<br />if(avp_db_load(&quot;$ru/username&quot;,&quot;$avp(callpickupDest)&quot;))
<br />{
<br />        if ( $avp(callpickupDest) != null)
<br />        {
<br />                $rU = $avp(callpickupDest);
<br />
<br />                alias_db_lookup(&quot;dbaliases&quot; , &quot;d&quot;);
<br />                lookup(&quot;location&quot;);
<br />
<br />                t_relay();
<br />                exit;
<br />        }
<br />}
<br />
<br />
<br />I&#39;m trying to figure out if there is a better way of using the IF statement in RouteX instead of looking to see if there is a Replaces header.  With Snom phones I can&#39;t put a prefix in front of the number or else it wouldn&#39;t be able to SUBSCRIBE for dialog updates and see if someone is calling the person.  I&#39;m sure there is some way.  Might just need to add a prefix and when the SUBSCRIBE comes in strip it off.
<br />
<br />Thanks for the help Bogdan!
<br />
<br />
<br />
<br />
<br />On , duane.larson@gmail.com wrote:
<br />&gt; Well using &quot;get_dialog_info&quot; works but on the Snom phone it won&#39;t ring since initially you are already on a call.  Then the Call is canceled and you see that a second line is receiving a call.  So with you select that second line you are connected to CallerA.  Its a dirty hack but works.  The only issue I see is when CallerA hangs up CallerC still thinks he is on the call and the call doesn&#39;t terminate.  Will have to see whats going wrong there.
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; I will still try the AVP way and see if that is a cleaner hack.
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; On , duane.larson@gmail.com wrote:
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; Yeah it makes a little sense.  I guess I would need to do a MySQL DB query and add the URI into an AVP.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; I found this post on Nabble and thought I might be able to use it
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; http://opensips-open-sip-server.1449251.n2.nabble.com/NEW-exchanging-info-between-dialogs-td4975220.html#a5035451
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; I will test to see if this works.  Here is what I am thinking
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; C sends a Call Pickup INVITE to PREFIX+A.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; OpenSIPS does the following when it gets this INVITE
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         if(search(&quot;^Replaces:.*;&quot;)){
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 # Grab the CallID in the Replaces Header so we can cancel the call to User B
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 $var(Replacesb2b) = $(hdr(replaces){s.select,0,;});
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 exec_msg(&quot;/usr/local/sbin/opensipsctl fifo t_uac_cancel $var(Replacesb2b) 2&quot;);
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 # - Set the dialog variables so the B2B dialog can see who we need to fail the call over to
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 store_dlg_value(&quot;CallPickupGrabber&quot;,&quot;$tU&quot;);                                   # - Set the dialog variables so the B2B dialog can see what CallID to Cancel
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 store_dlg_value(&quot;CallPickupCallID&quot;,&quot;$ci&quot;);
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 # - Set the value of the new URI the call needs to go to when it fails over
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                                 store_dlg_value(&quot;CallPickupNewCallee&quot;,&quot;$fu&quot;);                           };
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; So a Cancel gets sent to B
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; Now the first dialog, the B2B dialog, goes to failure route and we need to do the following within the failure_route
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         if(get_dialog_info(&quot;CallPickupCallID&quot;,&quot;$var(x)&quot;,&quot;CallPickupGrabber&quot;,&quot;$fU&quot;) ) {                                     $dlg_val(&quot;CancelCall&quot;) = $var(x)
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         }
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         if(get_dialog_info(&quot;CallPickupNewCallee&quot;,&quot;$var(y)&quot;,&quot;CallPickupGrabber&quot;,&quot;$fU&quot;) ) {                                     $dlg_val(&quot;NewBranch&quot;) = $var(y)
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         }
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         # Cancel the call from Caller C who wanted to do a call pickup
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         exec_msg(&quot;/usr/local/sbin/opensipsctl fifo t_uac_cancel $dlg_val(&quot;CancelCall&quot;) 1&quot;);
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         # Set the new Branch call
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         $ru = &quot;sip:&quot; + $dlg_val(&quot;NewBranch&quot;);
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         t_relay();
<br />&gt; 
<br />&gt; 
<br />&gt; &gt;                         exit;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; So I would think that Caller C will press a softkey when he wants to do a CallPickup and by pressing the key the call should be canceled and then Caller C&#39;s phone will ring and he can then talk to Caller A
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; Not sure if my logic is correct or if the get_dialog_info will solve my problems.  Any thoughts on if you think this might work or not (I&#39;ll have to test later)?
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; On , Bogdan-Andrei Iancu bogdan@opensips.org&gt; wrote:
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; Well, this is indeed a missing piece - some kind of way to pass information between transactions - either directly append a new branch for another transaction (based on AVP matching ?), either a more generic way to add an AVP to another transaction.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; Does it make sense ?
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; Regards,
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; Bogdan-Andrei Iancu
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; OpenSIPS Founder and Developer
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; http://www.opensips-solutions.com
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; On 06/11/2012 08:08 PM, duane.larson@gmail.com wrote:
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; I was thinking about this last night and with the Snom Phones I am able to do the following.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; I know how to cancel the first call to the PhoneB and I am thinking that I can cancel the call that PhoneC does when it wants to do a Call Pickup. The thing I am not sure about is how on the first call to add a branch to PhoneCs URI. How can I pass PhoneC&#39;s URI info to the first call so that I can add the new branch?
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; On , Bogdan-Andrei Iancu bogdan@opensips.org&gt; wrote:
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Hi Duane,
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; How I see this &quot;call pickup&quot; functionality:
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; 1) A calls to B, call is in ringing state
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; 2) C wants to pickup ringing call to B (this means C want to get to his phone the the call ringing from B).
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; 3) C dials PREFIX+B, indicating he wants to grab the call for B)
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; 4) the INVITE for (for the call from C) should add a new branch to C ( for the call to B)  and to cancel the branch to B
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; 5) as a result, the call from C will be terminated and the call from A will be serially forked to C.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; This is how I see this scenario.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Now there are same small missing pieces to make this happen - the most important is first to decide if the manipulation over the first call (adding a new branch and terminating the ongoing branch) should be done from script or via MI.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Regards,
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Bogdan-Andrei Iancu
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; OpenSIPS Founder and Developer
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; http://www.opensips-solutions.com
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; On 06/10/2012 03:44 AM, osiris123d wrote:
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Bogdan,
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; I&#39;m trying to figure out how to get Call Pickup working since the PSTN
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; provider can&#39;t handle the Replaces: header.  Here is my post here
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; http://opensips-open-sip-server.1449251.n2.nabble.com/B2B-with-Call-Pickup-td7580224.html
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; I see in this post you talk about using MI commands and the TM and Dialog
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; modules and the failure route to make this work.  I think with the TM module
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; I can send a CANCEL to the original Callee but how would you make the call
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; then fail over to the Failure Route so I can send it to the next callee?
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; --
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Call-pickup-tp7127393p7580251.html
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; _______________________________________________
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Users mailing list
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; Users@lists.opensips.org
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; http://lists.opensips.org/cgi-bin/mailman/listinfo/users
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt;
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt; 
<br />&gt; 
<br />&gt; 
<br />&gt; &gt; &gt;