Re: [OpenSIPStack] FW: FW: OpenSBC as Forking Proxy
Brought to you by:
joegenbaclor
From: Gustavo C. <cur...@ho...> - 2007-07-11 17:47:19
|
Hi Joegen: =20 I made changes in the code to avoid that the invite continue being sent whe= n sesion is being cancelled. When a cancel is received, after cancelling the Invite Server Transaction, = I terminate the Invite Client Transaction: =20 BOOL ProxySession::ValidateRequest(SIPMessage & request) { .... }else if( request.IsCancel() ) { m_SessionManager.GetUserAgent().GetS= tack().CancelInviteServerTransaction(m_Request); m_SessionManager.GetUse= rAgent().GetStack().TerminateInviteClientTransaction(m_CurrentUACRequest); = } } =20 BOOL SIPTransactionManager::TerminateInviteClientTransaction(const SIPMessa= ge & invite){ if( m_IsTerminating ) return FALSE; =20 PAssert( invite.IsInvite(), PLogicError ); =20 PWaitAndSignal lock( m_TransactionPoolMutex ); =20 TransactionId id =3D invite.GetTransactionId(); =20 if( id.AsString().IsEmpty() ) { LOG_IF_DEBUG( LogInfo(), "TerminateIn= viteClientTransaction() - Unable to match transaction because transaction-i= d is empty" ); return FALSE; } =20 id.SetStateMachine( "ICT" ); =20 SIPTransaction * transaction =3D m_TransactionPool.GetAt( id.AsString() )= ; if( transaction =3D=3D NULL ) { return FALSE; } transaction->Ter= minate(); =20 return TRUE;} =20 And in ProxySession::OnDNSFailOver(), the m_CurrentUACRequest is actualized= : =20 void ProxySession::OnDNSFailOver(SIPDNSFailOver & failOverEvent){ SIPMessag= e msg =3D failOverEvent.GetMessage(); =20 if( msg.IsInvite() ) { m_CurrentUACRequest =3D msg.AsString(); SIPURI ta= rgetURI; msg.GetRequestURI(targetURI); SetDialogPeerAddress( targetURI.As= String() ); }} First, I tried:m_CurrentUACRequest =3D msg;But the m_CurrentUACRequest was = not actualized, because the=20 m_InternalId was the same for both messages and: =20 SIPMessage & SIPMessage::operator=3D(const SIPMessage & msg) { if( msg.m_InternalId =3D=3D m_InternalId ) return *this; ... } =20 Then i used the AsString(): =20 m_CurrentUACRequest =3D msg.AsString(); =20 I know this is not the best solution, then if you could suggest a better on= e please let me know. Maybe in=20 SIPTransaction::DoDNSFailover(), changing : =20 SIPMessage request =3D m_OpeningRequest; =20 I attach the sip flows before and after the changes in the code, the second= sip flow is more normal. =20 Thanks for your help. =20 Gustavo =20 =20 > Date: Wed, 4 Jul 2007 15:06:09 +0800> To: cur...@gm...> From= : joe...@gm...> CC: ope...@li...> Su= bject: Re: [OpenSIPStack] FW: FW: OpenSBC as Forking Proxy> > Gustavo Curet= ti wrote:> > Hi Joegen:> > > > I don't have a call sesion, i have a proxy s= ession. The cancel is sent > > to the m_DialogPeerAddress for a proxy sessi= on. I have added the > > following code:> > > > void ProxySession::OnDNSFai= lOver(> > SIPDNSFailOver & failOverEvent> > )> > {> > SIPMessage msg =3D fa= ilOverEvent.GetMessage();> > if( msg.IsInvite() )> > {> > SIPURI targetURI;= > > msg.GetRequestURI(targetURI);> > SetDialogPeerAddress( targetURI.AsStri= ng() );> > }> > }> > I have patched CVS accordingly.> > > > > > Then the ca= ncel is sent to the actual target of the ICT transaction, > > but if the ac= tual target is not answering, the ICT continue trying > > with the actual t= arget and with the followings. The ICT transaction > > must stop trying. Co= uld you give some directions, please?> > I think this is a compliant behavi= or. Don't you want the UA to know > that the UAS is actually down? I have c= hecked 3261 again and paragraph > indicates that a proxy MAY send a respons= e to the CANCEL and generate a > new transaction towards the UAS. This is n= ot a MUST and is left to the > implementors to decide on. I am open to disc= uss this further if you > think it is a better approach to handle extra sta= te 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 tha= t way.> > 9.2 Server Behavior> > The CANCEL method requests that the TU at = the server side cancel a> pending transaction. The TU determines the transa= ction to be> cancelled by taking the CANCEL request, and then assuming that= the> request method is anything but CANCEL or ACK and applying the> transa= ction matching procedures of Section 17.2.3. The matching> transaction is t= he one to be cancelled.> > The processing of a CANCEL request at a server d= epends on the type of> server. A stateless proxy will forward it, a statefu= l 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 CAN= CEL.> > > > > >> > 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: OpenSB= C as Forking Proxy> > >> > > Hi Gustavo,> > >> > > I have committed a fix o= f 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. Lem= me dig further. I'll let you know once a fix is> > > > available.> > > >> >= > >> > > > Gustavo Curetti wrote:> > > >> > > >> Joegen:> > > >>> > > >> T= he fix works fine. But i have the following problem: When i hang up> > > >>= and send a Cancel to OpenSBC, the OpenSBC respond with> > > >> Code487_Req= uestCancelled but the Cancel is not been send to the > > actual> > > >> tar= get, the Cancel is just routed again.> > > >>> > > >> Thanks for your help.= > > > >>> > > >> Gustavo> > > >>> > > >> > > ------------------------------= ------------------------------------------> > > >>> > > >>> > > >>> Date: W= ed, 13 Jun 2007 22:15:14 +0800> > > >>> To: cur...@gm...; > > = ope...@li...> > > >>> Subject: Re: [OpenSIPStac= k] 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_FailOv= erAttempts> > > >>>> is increased from 0 to 1.> > > >>>>> > > >>>> Then the= via is changed (+ "-") and with this change when> > > >>>> FindTransaction= AndAddEvent() is called a new transaction is > > created.> > > >>>> In SIPT= ransaction::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: OpenSB= C 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: curetti.gustavo@gm= ail.com;> > > >>>>>> > > >>>> 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 h= ave committed this a few days ago to> > > >>>>> demonstrate fail-over by fo= rking using DNS/SRV records. New> > > >>>>> transactions are created by cal= ling> > > >>>>>> > > >>>> 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 cl= ient transaction when> > > >>>>>>> > > >>>> the> > > >>>>> > > >>>>>> first= invite fail in the FSM layer. Could you give some> > > >>>>>>> > > >>>> di= rections,> > > >>>>> > > >>>>>> please?> > > >>>>>>> > > >>>>>> Thanks for = your help.> > > >>>>>>> > > >>>>>> Gustavo.> > > >>>>>>> > > >>>>>>> > > >>= >>>>> > > >>>>>>> > > >>>>>>> > > >> > > ----------------------------------= --------------------------------------> > > >>> > > >>>>>> From: curetti_gu= st...@ho...> > > >>>>>> To: jb...@so...> > > >>>>>> Sub= ject: 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> > > >>>>>> Gust= avo> > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >> > > -----------------------= -------------------------------------------------> > > >>> > > >>>>>>> Date= : Thu, 10 May 2007 13:28:29 +0800> > > >>>>>>> From: jbaclor@solegysystems.= com> > > >>>>>>> To: cur...@gm...> > > >>>>>>> Subject: Re: [O= penSIPStack] OpenSBC as Forking Proxy> > > >>>>>>>> > > >>>>>>> Gustavo,> >= > >>>>>>>> > > >>>>>>> This will be a bit tricky. It is not as simple as s= pawning an> > > >>>>>>>> > > >>>>>> outbound> > > >>>>>>> > > >>>>>>> invit= e. There should be a clean mechanism to clone> > > >>>>>>>> > > >>>> transa= ctions 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 co= de for timer B> > > >>>>>>>>> > > >>>>>> expiration just> > > >>>>>>> > > >= >>>>>>> for do some tests:> > > >>>>>>>>> > > >>>>>>>> void ProxySessionMan= ager::OnTimerExpire(> > > >>>>>>>> SIPTimerExpire & timerEvent,> > > >>>>>>= >> SIPSession * session> > > >>>>>>>> )> > > >>>>>>>> {> > > >>>>>>>> if( s= ession !=3D NULL )> > > >>>>>>>> {> > > >>>>>>>> LOG_IF_DEBUG( LogWarning()= , "*** TIMER EXPIRATION *** for SIP> > > >>>>>>>> Session " << session->Get= SessionId() );> > > >>>>>>>> if( timerEvent.GetTimer() =3D=3D> > > >>>>>>>>= > > > >>>> SIPTransactions::SIPTimerEvent::B)> > > >>>>> > > >>>>>>>> {> > = > >>>>>>>> SIPMessage msg =3D ((ProxySession> > > >>>>>>>>> > > >>>> *)sess= ion)->GetOriginalInvite();> > > >>>>> > > >>>>>>>> session->EnqueueSessionE= vent( new SIPSessionEvent(> > > >>>>>>>>> > > >>>> *session, 1,> > > >>>>> = > > >>>>>>>> msg ) );> > > >>>>>>>> }> > > >>>>>>>> session->OnTimerExpire(= timerEvent );> > > >>>>>>>> }> > > >>>>>>>> }> > > >>>>>>>>> > > >>>>>>>> = and> > > >>>>>>>>> > > >>>>>>>> void ProxySession::OnTimerExpire(> > > >>>>= >>>> SIPTimerExpire & timerEvent> > > >>>>>>>> )> > > >>>>>>>> {> > > >>>>>= >>> GCREF( "SIPSession::OnTimerExpire" );> > > >>>>>>>> if( timerEvent.GetT= imer() =3D=3D> > > >>>>>>>>> > > >>>> SIPTransactions::SIPTimerEvent::B ||>= > > >>>>> > > >>>>>>>> timerEvent.GetTimer() =3D=3D SIPTransactions::SIPTi= merEvent::F )> > > >>>>>>>> {> > > >>>>>>>> ///this is an ICT timeout> > > = >>>>>>>> SIPMessage timeout;> > > >>>>>>>> GetCurrentUASRequest().CreateRes= ponse( timeout,> > > >>>>>>>> SIPMessage::Code480_TemporarilyNotAvailable )= ;> > > >>>>>>>> SendRequest( timeout );> > > >>>>>>>> }> > > >>>>>>>>> > > = >>>>>>>> //Destroy();> > > >>>>>>>> }> > > >>>>>>>>> > > >>>>>>>> With thes= e changes and a relay route:> > > >>>>>>>>> > > >>>>>>>> [sip:*@192.168.0.2= 07:*] 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 t= o 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 n= ew ICT for trying the next> > > >>>>>>>> destination but canceling throw th= e first ICT at the same> > > >>>>>>>>> > > >>>> time.> > > >>>>> > > >>>>>>= >> Thanks for your help.> > > >>>>>>>>> > > >>>>>>>> Gustavo> > > >>>>>>>>>= > > >>>>>>>>> > > >>>>>>>>> > > >> > > -----------------------------------= -------------------------------------> > > >>> > > >>>>>>>>> Date: Sat, 5 M= ay 2007 13:50:44 +0800> > > >>>>>>>>> From: jb...@so...> > > = >>>>>>>>> To: cur...@gm...;> > > >>>>>>>>>> > > >>>>>> opensip= sta...@li...> > > >>>>>>> > > >>>>>>>>> Subject: Re: [= OpenSIPStack] OpenSBC as Forking Proxy> > > >>>>>>>>>> > > >>>>>>>>> Gustav= o,> > > >>>>>>>>>> > > >>>>>>>>> Forking is not supported yet in OpenSBC.> = > > >>>>>>>>>> > > >>>>>>>>> Joegen> > > >>>>>>>>>> > > >>>>>>>>> Gustavo C= uretti wrote:> > > >>>>>>>>>> > > >>>>>>>>>> Hi Joegen:> > > >>>>>>>>>>> > = > >>>>>>>>>> I want to use the OpenSBC as a Forking Proxy. I want> > > >>>>= >>>>>>> > > >>>> that the> > > >>>>> > > >>>>>>>>>> OpenSBC try the differe= nts Relays Routes one by one. Could> > > >>>>>>>>>>> > > >>>>>> you give> >= > >>>>>>> > > >>>>>>>>>> some directions, please?> > > >>>>>>>>>>> > > >>>= >>>>>>> Thanks for your help.> > > >>>>>>>>>>> > > >>>>>>>>>> Gustavo.> > >= >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> > > >> > > -------------------= -----------------------------------------------------> > > >>> > > >>>>>>>>= >> Descubre Live.com - tu propia p=E1gina de inicio,> > > >>>>>>>>>>> > > >= >>>>> personalizada para> > > >>>>>>> > > >>>>>>>> ver> > > >>>>>>>>> > > >= >>>>>>>>> r=E1pidamente todo lo que te interesa en un mismo sitio.> > > >>>= >>>>>>>> > > >>>>>> todo en el> > > >>>>>>> > > >>>>>>>>>> mismo sitio. <ht= tp://www.live.com/getstarted>> > > >>>>>>>>>>> > > >>>>>>>>>>> > > >> > > -= -----------------------------------------------------------------------> > = > >>> > > >>>>>>>>>>> > > >> > > ------------------------------------------= -------------------------------> > > >>> > > >>>>>>>>>> This SF.net email i= s sponsored by DB2 Express> > > >>>>>>>>>> Download DB2 Express C - the FRE= E version of DB2 express> > > >>>>>>>>>>> > > >>>>>> and take> > > >>>>>>> = > > >>>>>>>>>> control of your XML. No limits. Just data. Click to get it> = > > >>>>>>>>>>> > > >>>>>> now.> > > >>>>>>> > > >>>>>>>>>> http://sourcefo= rge.net/powerbar/db2/> > > >>>>>>>>>>> > > >>>>>>>>>>> > > >> > > ---------= ---------------------------------------------------------------> > > >>> > = > >>>>>>>>>> _______________________________________________> > > >>>>>>>>>= > opensipstack-devel mailing list> > > >>>>>>>>>> opensipstack-devel@lists.= sourceforge.net> > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>> https://lists.s= ourceforge.net/lists/listinfo/opensipstack-devel> > > >>>>>>> > > >>>>>>>>>= > > > >>>>>>>>>> > > >> > > -----------------------------------------------= --------------------------> > > >>> > > >>>>>>>>> This SF.net email is spon= sored by DB2 Express> > > >>>>>>>>> Download DB2 Express C - the FREE versi= on of DB2 express and> > > >>>>>>>>>> > > >>>>>> take> > > >>>>>>> > > >>>>= >>>>> control of your XML. No limits. Just data. Click to get> > > >>>>>>>>= >> > > >>>> it now.> > > >>>>> > > >>>>>>>>> http://sourceforge.net/powerba= r/db2/> > > >>>>>>>>> _______________________________________________> > > = >>>>>>>>> opensipstack-devel mailing list> > > >>>>>>>>> opensipstack-devel= @lists.sourceforge.net> > > >>>>>>>>>> > > >>>>>>>>>> > > >>>> https://list= s.sourceforge.net/lists/listinfo/opensipstack-devel> > > >>>>> > > >>>>>>>>= > > > >>>>>>>>> > > >> > > ------------------------------------------------= ------------------------> > > >>> > > >>>>>>>> Se uno de los primeros en pr= obar Windows Live Mail. Windows> > > >>>>>>>>> > > >>>>>> Live Mail.> > > >= >>>>>> > > >> > > <http://ideas.live.com/programpage.aspx?versionId=3D5d21c= 51a-b161-4314-9b0e-4911fb2b2e6d>> > > >>> > > >>>>>>> > > >>>>>>> > > >> > = > ------------------------------------------------------------------------>= > > >>> > > >>>>>> Se uno de los primeros en probar Windows Live Mail. Win= dows Live> > > >>>>>> Mail.> > > >>>>>>> > > >>>>>>> > > >> > > <http://ide= as.live.com/programpage.aspx?versionId=3D5d21c51a-b161-4314-9b0e-4911fb2b2e= 6d>> > > >>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >> > > ---------------= ---------------------------------------------------------> > > >>> > > >>>>= >> Se uno de los primeros en probar Windows Live Mail. Windows> > > >>>>>>>= > > >>>> Live Mail.> > > >>>>> > > >> > > <http://ideas.live.com/programpa= ge.aspx?versionId=3D5d21c51a-b161-4314-9b0e-4911fb2b2e6d>> > > >>> > > >>>>= >> > > >>>>>> > > >> > > --------------------------------------------------= -----------------------> > > >>> > > >>>>> This SF.net email is sponsored b= y DB2 Express> > > >>>>> Download DB2 Express C - the FREE version of DB2 e= xpress and take> > > >>>>> control of your XML. No limits. Just data. Click= to get it now.> > > >>>>> http://sourceforge.net/powerbar/db2/> > > >>>>> = _______________________________________________> > > >>>>> opensipstack-dev= el 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=3D5d21c51a= -b161-4314-9b0e-4911fb2b2e6d>> > > >>> > > >>>>> > > >>>>> > > >>>>> > > >>= > > ----------------------------------------------------------------------= --> > > >>> > > >>>> Comun=EDcate al instante con Windows Live Messenger Wi= ndows Live> > > >>>> Messenger> > > >>>>> > > >>>>> > > >> > > <http://imag= ine-msn.com/messenger/launch80/default.aspx?locale=3Des-ar&source=3Djoinmsn= com/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...urcef= orge.net> > > >>>> https://lists.sourceforge.net/lists/listinfo/opensipstac= k-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., Su= ite 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.asp= x?versionId=3D5d21c51a-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> > > > c= ontrol of your XML. No limits. Just data. Click to get it now.> > > > http:= //sourceforge.net/powerbar/db2/> > > > ____________________________________= ___________> > > > opensipstack-devel mailing list> > > > opensipstack-deve= l...@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. Cli= ck to get it now.> > > http://sourceforge.net/powerbar/db2/> > > __________= _____________________________________> > > opensipstack-devel mailing list>= > > ope...@li...> > > https://lists.sourceforg= e.net/lists/listinfo/opensipstack-devel> >> >> > --------------------------= ----------------------------------------------> > Env=EDa mensajes de corre= o electr=F3nico directamente a tu blog con MSN. > > Carga chistes, fotograf= =EDas y muchas otras cosas. Es gratis. > > <http://clk.atdmt.com/MSN/go/msn= nksac0030000001msn/direct/01/?href=3Dhttp://www.imagine-msn.com/spaces>> > = > -------------------------------------------------------------------------= > This SF.net email is sponsored by DB2 Express> Download DB2 Express C - t= he FREE version of DB2 express and take> control of your XML. No limits. Ju= st data. Click to get it now.> http://sourceforge.net/powerbar/db2/> ______= _________________________________________> opensipstack-devel mailing list>= ope...@li...> https://lists.sourceforge.net/li= sts/listinfo/opensipstack-devel _________________________________________________________________ Expr=E9sate - dise=F1a tu p=E1gina de inicio de Live.com como m=E1s te gust= e. http://www.live.com/getstarted= |