Re: [OpenSIPStack] FW: FW: OpenSBC as Forking Proxy
Brought to you by:
joegenbaclor
From: Joegen E. B. <joe...@gm...> - 2007-07-04 07:06:15
|
Gustavo Curetti wrote: > Hi Joegen: > > I don't have a call sesion, i have a proxy session. The cancel is sent > to the m_DialogPeerAddress for a proxy session. I have added the > following code: > > void ProxySession::OnDNSFailOver( > SIPDNSFailOver & failOverEvent > ) > { > SIPMessage msg = failOverEvent.GetMessage(); > if( msg.IsInvite() ) > { > SIPURI targetURI; > msg.GetRequestURI(targetURI); > SetDialogPeerAddress( targetURI.AsString() ); > } > } I have patched CVS accordingly. > > Then the cancel is sent to the actual target of the ICT transaction, > but if the actual target is not answering, the ICT continue trying > with the actual target and with the followings. The ICT transaction > must stop trying. Could you give some directions, please? I think this is a compliant behavior. Don't you want the UA to know that the UAS is actually down? I have checked 3261 again and paragraph indicates that a proxy MAY send a response to the CANCEL and generate a new transaction towards the UAS. This is not a MUST and is left to the implementors to decide on. I am open to discuss this further if you think it is a better approach to handle extra state in the proxy for cancelling transaction. My main reason for doing this is to make proxy transactions light and I would favor to let it stay that way. 9.2 Server Behavior The CANCEL method requests that the TU at the server side cancel a pending transaction. The TU determines the transaction to be cancelled by taking the CANCEL request, and then assuming that the request method is anything but CANCEL or ACK and applying the transaction matching procedures of Section 17.2.3. The matching transaction is the one to be cancelled. The processing of a CANCEL request at a server depends on the type of server. A stateless proxy will forward it, a stateful proxy might respond to it and generate some CANCEL requests of its own, and a UAS will respond to it. See Section 16.10 for proxy treatment of CANCEL. > > Thanks for your help. > Gustavo. > > ------------------------------------------------------------------------ > > > Date: Tue, 26 Jun 2007 15:23:39 +0800 > > From: jb...@so... > > To: jb...@so...; ope...@li... > > CC: cur...@gm... > > Subject: Re: [OpenSIPStack] FW: FW: OpenSBC as Forking Proxy > > > > Hi Gustavo, > > > > I have committed a fix of this. It's very simple actually. I just > > propagated a SIPDNSFailOver stack event to the call session and made > > sure that m_CurrentUACInvite is replaced. Can you check if this is a > > safe change? Thanks. > > > > Joegen > > > > > > Joegen E. Baclor wrote: > > > Hmmmn thats TRUE. Lemme dig further. I'll let you know once a fix is > > > available. > > > > > > > > > Gustavo Curetti wrote: > > > > > >> Joegen: > > >> > > >> The fix works fine. But i have the following problem: When i hang up > > >> and send a Cancel to OpenSBC, the OpenSBC respond with > > >> Code487_RequestCancelled but the Cancel is not been send to the > actual > > >> target, the Cancel is just routed again. > > >> > > >> Thanks for your help. > > >> > > >> Gustavo > > >> > > >> > ------------------------------------------------------------------------ > > >> > > >> > > >>> Date: Wed, 13 Jun 2007 22:15:14 +0800 > > >>> To: cur...@gm...; > ope...@li... > > >>> Subject: Re: [OpenSIPStack] FW: FW: OpenSBC as Forking Proxy > > >>> From: joe...@gm... > > >>> > > >>> I've just checked in a fix for this in CVS. > > >>> > > >>> Gustavo Curetti wrote: > > >>> > > >>>> Joegen, > > >>>> > > >>>> I tried the DoDNSFailover's code but i have the following behavior: > > >>>> > > >>>> When DoDNSFailover() is called for the first time > m_FailOverAttempts > > >>>> is increased from 0 to 1. > > >>>> > > >>>> Then the via is changed (+ "-") and with this change when > > >>>> FindTransactionAndAddEvent() is called a new transaction is > created. > > >>>> In SIPTransaction::SIPTransaction() m_FailOverAttempts is > initialized > > >>>> to 0. Then when DoDNSFailover() is called again, the same target > > >>>> > > >> is used. > > >> > > >>>> Gustavo > > >>>> > > >>>> > > >>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>> From: cur...@ho... > > >>>> To: jb...@so... > > >>>> Subject: RE: [OpenSIPStack] FW: OpenSBC as Forking Proxy > > >>>> Date: Wed, 30 May 2007 14:43:32 +0200 > > >>>> > > >>>> Joegen, > > >>>> > > >>>> Thanks a lot. I will try to change the behavior. > > >>>> > > >>>> Gustavo > > >>>> > > >>>> > > >>>> > > >>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>> Date: Fri, 18 May 2007 08:15:20 +0800 > > >>>>> From: jb...@so... > > >>>>> To: cur...@gm...; > > >>>>> > > >>>> ope...@li... > > >>>> > > >>>>> Subject: Re: [OpenSIPStack] FW: OpenSBC as Forking Proxy > > >>>>> > > >>>>> Gustavo, > > >>>>> > > >>>>> Sorry, I forgot to get back to you. If you have the latest CVS > head > > >>>>> code, check out BOOL SIPTransaction::DoDNSFailover() in > > >>>>> SIPTransaction.cxx. I have committed this a few days ago to > > >>>>> demonstrate fail-over by forking using DNS/SRV records. New > > >>>>> transactions are created by calling > > >>>>> > > >>>> FindTransactionAndAddEvent(). You > > >>>> > > >>>>> can just change its behavior a bit and get the fail-over routes > > >>>>> somewhere instead of DNS/SRV queries. > > >>>>> > > >>>>> Joegen > > >>>>> > > >>>>> > > >>>>> Gustavo Curetti wrote: > > >>>>> > > >>>>>> Joegen: > > >>>>>> > > >>>>>> I don't understand how to create a new client transaction when > > >>>>>> > > >>>> the > > >>>> > > >>>>>> first invite fail in the FSM layer. Could you give some > > >>>>>> > > >>>> directions, > > >>>> > > >>>>>> please? > > >>>>>> > > >>>>>> Thanks for your help. > > >>>>>> > > >>>>>> Gustavo. > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>> From: cur...@ho... > > >>>>>> To: jb...@so... > > >>>>>> Subject: RE: [OpenSIPStack] OpenSBC as Forking Proxy > > >>>>>> Date: Mon, 14 May 2007 16:18:57 +0200 > > >>>>>> > > >>>>>> Joegen: > > >>>>>> > > >>>>>> Thanks for your help. Do you suggest to do the serial forking in > > >>>>>> FSM layer with a custom header?.Must each new try create a new > > >>>>>> client transaction? > > >>>>>> > > >>>>>> Thanks > > >>>>>> Gustavo > > >>>>>> > > >>>>>> > > >>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>>> Date: Thu, 10 May 2007 13:28:29 +0800 > > >>>>>>> From: jb...@so... > > >>>>>>> To: cur...@gm... > > >>>>>>> Subject: Re: [OpenSIPStack] OpenSBC as Forking Proxy > > >>>>>>> > > >>>>>>> Gustavo, > > >>>>>>> > > >>>>>>> This will be a bit tricky. It is not as simple as spawning an > > >>>>>>> > > >>>>>> outbound > > >>>>>> > > >>>>>>> invite. There should be a clean mechanism to clone > > >>>>>>> > > >>>> transactions and > > >>>> > > >>>>>>> this is not present in the FSM currently. Forking should be done > > >>>>>>> > > >>>>>> in the > > >>>>>> > > >>>>>>> FSM layer, not in the UACore layer. I will see what I can do to > > >>>>>>> > > >>>>>> help > > >>>>>> > > >>>>>>> you. I will let you know when I have something you can use > > >>>>>>> > > >>>>>> cleanly to > > >>>>>> > > >>>>>>> fork your calls. Perhaps over the weekend, but that isn't a > > >>>>>>> > > >>>> promise. > > >>>> > > >>>>>>> Joegen > > >>>>>>> > > >>>>>>> Gustavo Curetti wrote: > > >>>>>>> > > >>>>>>>> Joegen: > > >>>>>>>> > > >>>>>>>> What I want to do is a very simple sequential search. When one > > >>>>>>>> destination don't answer or reject the call I want the OpenSBC > > >>>>>>>> > > >>>>>> try > > >>>>>> > > >>>>>>>> another. > > >>>>>>>> > > >>>>>>>> I made the following changes in the code for timer B > > >>>>>>>> > > >>>>>> expiration just > > >>>>>> > > >>>>>>>> for do some tests: > > >>>>>>>> > > >>>>>>>> void ProxySessionManager::OnTimerExpire( > > >>>>>>>> SIPTimerExpire & timerEvent, > > >>>>>>>> SIPSession * session > > >>>>>>>> ) > > >>>>>>>> { > > >>>>>>>> if( session != NULL ) > > >>>>>>>> { > > >>>>>>>> LOG_IF_DEBUG( LogWarning(), "*** TIMER EXPIRATION *** for SIP > > >>>>>>>> Session " << session->GetSessionId() ); > > >>>>>>>> if( timerEvent.GetTimer() == > > >>>>>>>> > > >>>> SIPTransactions::SIPTimerEvent::B) > > >>>> > > >>>>>>>> { > > >>>>>>>> SIPMessage msg = ((ProxySession > > >>>>>>>> > > >>>> *)session)->GetOriginalInvite(); > > >>>> > > >>>>>>>> session->EnqueueSessionEvent( new SIPSessionEvent( > > >>>>>>>> > > >>>> *session, 1, > > >>>> > > >>>>>>>> msg ) ); > > >>>>>>>> } > > >>>>>>>> session->OnTimerExpire( timerEvent ); > > >>>>>>>> } > > >>>>>>>> } > > >>>>>>>> > > >>>>>>>> and > > >>>>>>>> > > >>>>>>>> void ProxySession::OnTimerExpire( > > >>>>>>>> SIPTimerExpire & timerEvent > > >>>>>>>> ) > > >>>>>>>> { > > >>>>>>>> GCREF( "SIPSession::OnTimerExpire" ); > > >>>>>>>> if( timerEvent.GetTimer() == > > >>>>>>>> > > >>>> SIPTransactions::SIPTimerEvent::B || > > >>>> > > >>>>>>>> timerEvent.GetTimer() == SIPTransactions::SIPTimerEvent::F ) > > >>>>>>>> { > > >>>>>>>> ///this is an ICT timeout > > >>>>>>>> SIPMessage timeout; > > >>>>>>>> GetCurrentUASRequest().CreateResponse( timeout, > > >>>>>>>> SIPMessage::Code480_TemporarilyNotAvailable ); > > >>>>>>>> SendRequest( timeout ); > > >>>>>>>> } > > >>>>>>>> > > >>>>>>>> //Destroy(); > > >>>>>>>> } > > >>>>>>>> > > >>>>>>>> With these changes and a relay route: > > >>>>>>>> > > >>>>>>>> [sip:*@192.168.0.207:*] sip:192.168.0.1:5060, > > >>>>>>>> > > >>>>>> sip:192.168.0.60:5060 > > >>>>>> > > >>>>>>>> the OpenSBC made the second invite successfully. But what i > > >>>>>>>> > > >>>>>> really > > >>>>>> > > >>>>>>>> want is to use some custom headers with a list destination > > >>>>>>>> > > >>>>>> addresses > > >>>>>> > > >>>>>>>> instead of the relay routes and to do the same in case of a > > >>>>>>>> > > >>>>>> reject. Do > > >>>>>> > > >>>>>>>> you have any suggestions? > > >>>>>>>> > > >>>>>>>> Other question: Can i have two active ICT for a session? > > >>>>>>>> > > >>>>>> Because in > > >>>>>> > > >>>>>>>> the case of reject, I must start a new ICT for trying the next > > >>>>>>>> destination but canceling throw the first ICT at the same > > >>>>>>>> > > >>>> time. > > >>>> > > >>>>>>>> Thanks for your help. > > >>>>>>>> > > >>>>>>>> Gustavo > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>>>>> Date: Sat, 5 May 2007 13:50:44 +0800 > > >>>>>>>>> From: jb...@so... > > >>>>>>>>> To: cur...@gm...; > > >>>>>>>>> > > >>>>>> ope...@li... > > >>>>>> > > >>>>>>>>> Subject: Re: [OpenSIPStack] OpenSBC as Forking Proxy > > >>>>>>>>> > > >>>>>>>>> Gustavo, > > >>>>>>>>> > > >>>>>>>>> Forking is not supported yet in OpenSBC. > > >>>>>>>>> > > >>>>>>>>> Joegen > > >>>>>>>>> > > >>>>>>>>> Gustavo Curetti wrote: > > >>>>>>>>> > > >>>>>>>>>> Hi Joegen: > > >>>>>>>>>> > > >>>>>>>>>> I want to use the OpenSBC as a Forking Proxy. I want > > >>>>>>>>>> > > >>>> that the > > >>>> > > >>>>>>>>>> OpenSBC try the differents Relays Routes one by one. Could > > >>>>>>>>>> > > >>>>>> you give > > >>>>>> > > >>>>>>>>>> some directions, please? > > >>>>>>>>>> > > >>>>>>>>>> Thanks for your help. > > >>>>>>>>>> > > >>>>>>>>>> Gustavo. > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>>>>>> Descubre Live.com - tu propia página de inicio, > > >>>>>>>>>> > > >>>>>> personalizada para > > >>>>>> > > >>>>>>>> ver > > >>>>>>>> > > >>>>>>>>>> rápidamente todo lo que te interesa en un mismo sitio. > > >>>>>>>>>> > > >>>>>> todo en el > > >>>>>> > > >>>>>>>>>> mismo sitio. <http://www.live.com/getstarted> > > >>>>>>>>>> > > >>>>>>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>>>>>> > > >> > ------------------------------------------------------------------------- > > >> > > >>>>>>>>>> This SF.net email is sponsored by DB2 Express > > >>>>>>>>>> Download DB2 Express C - the FREE version of DB2 express > > >>>>>>>>>> > > >>>>>> and take > > >>>>>> > > >>>>>>>>>> control of your XML. No limits. Just data. Click to get it > > >>>>>>>>>> > > >>>>>> now. > > >>>>>> > > >>>>>>>>>> http://sourceforge.net/powerbar/db2/ > > >>>>>>>>>> > > >>>>>>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>>>>>> _______________________________________________ > > >>>>>>>>>> opensipstack-devel mailing list > > >>>>>>>>>> ope...@li... > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > >>>>>> > > >>>>>>>>> > > >>>>>>>>> > > >> > ------------------------------------------------------------------------- > > >> > > >>>>>>>>> This SF.net email is sponsored by DB2 Express > > >>>>>>>>> Download DB2 Express C - the FREE version of DB2 express and > > >>>>>>>>> > > >>>>>> take > > >>>>>> > > >>>>>>>>> control of your XML. No limits. Just data. Click to get > > >>>>>>>>> > > >>>> it now. > > >>>> > > >>>>>>>>> http://sourceforge.net/powerbar/db2/ > > >>>>>>>>> _______________________________________________ > > >>>>>>>>> opensipstack-devel mailing list > > >>>>>>>>> ope...@li... > > >>>>>>>>> > > >>>>>>>>> > > >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > >>>> > > >>>>>>>> > > >>>>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>>>> Se uno de los primeros en probar Windows Live Mail. Windows > > >>>>>>>> > > >>>>>> Live Mail. > > >>>>>> > > >> > <http://ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d> > > >> > > >>>>>> > > >>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>> Se uno de los primeros en probar Windows Live Mail. Windows Live > > >>>>>> Mail. > > >>>>>> > > >>>>>> > > >> > <http://ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d> > > >> > > >>>>>> > > >>>>>> > > >>>>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>>>> Se uno de los primeros en probar Windows Live Mail. Windows > > >>>>>> > > >>>> Live Mail. > > >>>> > > >> > <http://ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d> > > >> > > >>>>> > > >>>>> > > >> > ------------------------------------------------------------------------- > > >> > > >>>>> This SF.net email is sponsored by DB2 Express > > >>>>> Download DB2 Express C - the FREE version of DB2 express and take > > >>>>> control of your XML. No limits. Just data. Click to get it now. > > >>>>> http://sourceforge.net/powerbar/db2/ > > >>>>> _______________________________________________ > > >>>>> opensipstack-devel mailing list > > >>>>> ope...@li... > > >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > >>>>> > > >>>> > > >>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>> Se uno de los primeros en probar Windows Live Mail. Windows Live > > >>>> Mail. > > >>>> > > >>>> > > >> > <http://ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d> > > >> > > >>>> > > >>>> > > >>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>> Comunícate al instante con Windows Live Messenger Windows Live > > >>>> Messenger > > >>>> > > >>>> > > >> > <http://imagine-msn.com/messenger/launch80/default.aspx?locale=es-ar&source=joinmsncom/messenger> > > > >> > > >> > > >>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>> > > >> > ------------------------------------------------------------------------- > > >> > > >>>> This SF.net email is sponsored by DB2 Express > > >>>> Download DB2 Express C - the FREE version of DB2 express and take > > >>>> control of your XML. No limits. Just data. Click to get it now. > > >>>> http://sourceforge.net/powerbar/db2/ > > >>>> > > >>>> > > >> > ------------------------------------------------------------------------ > > >> > > >>>> _______________________________________________ > > >>>> opensipstack-devel mailing list > > >>>> ope...@li... > > >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > >>>> > > >>>> > > >>> -- > > >>> Joegen E. Baclor > > >>> CTO - Solegy LLC > > >>> > > >>> Email: joegen @ solegy.com > > >>> Main: +1 212 801 2504 > > >>> Fax: +1 347 438 3072 > > >>> Manila: +63 2 747 3460 > > >>> Mobile: +63 918 411 9064 > > >>> > > >>> 121 Varick St., Suite 201 > > >>> NY, NY 10013 > > >>> > > >>> SOLEGY LLC > > >>> http://www.solegy.com > > >>> Solutions to Fit Your Strategy > > >>> > > >>> > > >>> > > >> > ------------------------------------------------------------------------ > > >> Se uno de los primeros en probar Windows Live Mail. Windows Live > Mail. > > >> > <http://ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d> > > >> > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > This SF.net email is sponsored by DB2 Express > > > Download DB2 Express C - the FREE version of DB2 express and take > > > control of your XML. No limits. Just data. Click to get it now. > > > http://sourceforge.net/powerbar/db2/ > > > _______________________________________________ > > > opensipstack-devel mailing list > > > ope...@li... > > > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > > > > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by DB2 Express > > Download DB2 Express C - the FREE version of DB2 express and take > > control of your XML. No limits. Just data. Click to get it now. > > http://sourceforge.net/powerbar/db2/ > > _______________________________________________ > > opensipstack-devel mailing list > > ope...@li... > > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > ------------------------------------------------------------------------ > Envía mensajes de correo electrónico directamente a tu blog con MSN. > Carga chistes, fotografías y muchas otras cosas. Es gratis. > <http://clk.atdmt.com/MSN/go/msnnksac0030000001msn/direct/01/?href=http://www.imagine-msn.com/spaces> |