Re: [OpenSIPStack] MWI Notify
Brought to you by:
joegenbaclor
|
From: Joegen B. <joe...@gm...> - 2009-04-23 00:31:41
|
We can post the tutorial as part of the library distribution tree perhaps under contrib directory. We can also post it in the forum. Regarding the retransmission, that is per specs. See text from 3261. 17.1.2.1 Overview of the non-INVITE Transaction Non-INVITE transactions do not make use of ACK. They are simple request-response interactions. For unreliable transports, requests are retransmitted at an interval which starts at T1 and doubles until it hits T2. If a provisional response is received, retransmissions continue for unreliable transports, but at an interval of T2. The server transaction retransmits the last response it sent, which can be a provisional or final response, only when a retransmission of the request is received. This is why request retransmissions need to continue even after a provisional response; they are to ensure reliable delivery of the final response. *** Take note of "If a provisional response is received, retransmissions continue for unreliable transports, but at an interval of T2." *** -------------------------------------------------- From: "Jamieson, William W" <jam...@RL...> Sent: Thursday, April 23, 2009 6:20 AM To: "'Joegen Baclor'" <jb...@so...>; <ope...@li...> Subject: RE: [OpenSIPStack] MWI Notify > I got this working pretty well now. The only problem left is that the > stack seems to resend the Notify message after a code 100 (Trying). It > takes a couple seconds for the Dialogic to send OK after a Notify. Is > there an easy way to change the timer value for how long it waits before a > resend or is this something I should worry about (i.e., it won't speed up > the client side by changing the timer values)? > > Here's what I get: > ---> xx1.527s Request: Notify > <--- xx1.541s Status: 100 Trying > ---> xx2.011s Request: Notify > <--- xx2.016s Status: 100 Trying > <--- xx3.995s Status: 200 OK > > I've send it go as long as 3 seconds but I've never seen more than one > resend. > > Joegen, > > Where is the Tutorial you requested I write supposed to go, on the forum? > > -Bill > > -----Original Message----- > From: Joegen Baclor [mailto:joe...@gm...] > Sent: Tuesday, April 21, 2009 3:46 PM > To: ope...@li... > Subject: Re: [OpenSIPStack] MWI Notify > > Sorry my bad! Yes those headers must be in the body. I'll change the > sample app when I get the chance. > > -------------------------------------------------- > From: "Jamieson, William W" <jam...@RL...> > Sent: Wednesday, April 22, 2009 3:44 AM > To: <ope...@li...> > Subject: Re: [OpenSIPStack] MWI Notify > >> Yeah, I got it working a while ago by moving the msg-status-line to >> the body. I didn't need the msg-account or msg-summary-line. You were >> right. >> >> Thanks again, >> -Bill >> >> -----Original Message----- >> From: Matthias Dreißig [mailto:mdr...@gm...] >> Sent: Tuesday, April 21, 2009 11:46 AM >> To: ope...@li... >> Subject: Re: [OpenSIPStack] MWI Notify >> >> RFC3842 sample: >> >> NOTIFY sip:al...@al... SIP/2.0 >> To: <sip:al...@ex...>;tag=78923 >> From: <sip:al...@ex...>;tag=4442 >> Date: Mon, 10 Jul 2000 03:55:07 GMT >> Call-Id: 13...@al... >> CSeq: 20 NOTIFY >> Contact: <sip:al...@vm...> >> Event: message-summary >> Subscription-State: active >> Content-Type: application/simple-message-summary >> Content-Length: 99 >> (body part size = 99) >> Messages-Waiting: yes >> Message-Account: sip:al...@vm... >> Voice-Message: 2/8 (0/2) >> >> Your part >> >> NOTIFY sip:3768720@130.97.10.5:5060 SIP/2.0 >> From: >> <sip:tes...@op...>;tag=5385369e3efe18109d428376cc92421d >> To: sip:3768720@130.97.10.5:5060 >> Via: SIP/2.0/UDP >> 130.97.35.171:5070;iid=417;branch=z9hG4bK5385369e3efe18109d438376cc92421d;uas-addr=130.97.10.5 >> CSeq: 1 NOTIFY >> Call-ID: 5385369e-3efe-1810-9603-8376cc92421d >> Contact: <sip:130.97.35.171:5070> >> Event: message-summary >> User-Agent: Sample UA >> Max-Forwards: 70 >> Messages-Waiting: yes >> Message-Account: sip:test_account@localhost >> Voice-Message: 1/1 >> Content-Length: 0 >> (empty body part size = 0) >> >> For me this looks not the same. After the content length there comes >> the body. >> >> And here is the definition of body part >> http://tools.ietf.org/html/rfc3842#section-5.2. >> >> Regards, >> Matthias >> >> Jamieson, William W schrieb: >>> The RFC looks the same as what I get on the wire - at least the way >>> Joegen laid it out with the message-waiting, etc as Custom Headers. >>> It looks like what the RFC shows for the packet - including that they >>> show a non-zero Content-Length (99 in their example). >>> http://tools.ietf.org/html/rfc3842#section-4.1 >>> >>> Maybe I'm not seeing how that a body is defined in the text document >>> I have from dialogic and from the RFC. They both show a blank line >>> after the last header and before the three MWI parts (Message-Waiting, >>> etc). >>> I'll try adding them to the body and see what happens. >>> >>> Thanks, >>> -Bill >>> >>> -----Original Message----- >>> From: Matthias Dreißig [mailto:mdr...@gm...] >>> Sent: Tuesday, April 21, 2009 10:56 AM >>> To: ope...@li... >>> Subject: Re: [OpenSIPStack] MWI Notify >>> >>> Hi Bill, >>> >>> what I can tell you is that the content length describes the length >>> of the body of the NOTIFY message. And because this NOTIFY doesn't >>> have a body the content length is 0. When I look at the RFC 3842 the >>> information Message-Waiting, Message-Account,.. has to be as text in >>> the body of the NOTIFY message and not as headers in the message >>> (http://tools.ietf.org/html/rfc3842#section-3.5). >>> >>> There are also sample messages >>> (http://tools.ietf.org/html/rfc3842#section-4). >>> >>> Regards, >>> Matthias >>> >>> >>> Jamieson, William W schrieb: >>> >>>> I have it working somewhat now but I notice on the wire that the >>>> content-length is zero. It's supposed to be the size of all the >>>> custom headers from what I can tell from the RFC. Is there a >>>> standard way of setting this? Also, I'm not getting the notification >>>> from ClientSession::OnIncomingSIPMessage when the server sends back >>>> it's status 100 "Trying" packet (see capture below). >>>> >>>> Here's what went on the wire. It shows an Internal Server Error but >>>> I'm not sure it is from the content length being zero. In the last >>>> version of the MWI service, I wrote my own SIP commands to do this, >>>> I found that I had to use Invite to get it to work even though >>>> Dialogic Support was telling me that they accept Notify and they >>>> reminded me that Invite may go away since it is not the standard. I >>>> just assumed that it was because I had written my own SIP commands >>>> to do it. I'll keep at this and maybe try it against our Cisco CM to >>>> see how it behaves. >>>> >>>> >>>> >>>> No. Time Source Destination >>>> Protocol Info >>>> 488 09:02:49.359600 130.97.35.171 130.97.10.5 SIP >>>> Request: NOTIFY sip:3768720@130.97.10.5:5060 >>>> >>>> Frame 488 (586 bytes on wire, 586 bytes captured) Ethernet II, Src: >>>> Dell_4e:64:f8 (00:21:9b:4e:64:f8), Dst: Cisco_f3:26:45 >>>> (00:18:ba:f3:26:45) Internet Protocol, Src: 130.97.35.171 >>>> (130.97.35.171), Dst: 130.97.10.5 (130.97.10.5) User Datagram >>>> Protocol, Src Port: vtsas (5070), Dst Port: sip (5060) >>>> Source port: vtsas (5070) >>>> Destination port: sip (5060) >>>> Length: 552 >>>> Checksum: 0xeb12 [correct] >>>> Session Initiation Protocol >>>> Request-Line: NOTIFY sip:3768720@130.97.10.5:5060 SIP/2.0 >>>> Message Header >>>> From: >>>> <sip:tes...@op...>;tag=5385369e3efe18109d428376cc92421d >>>> To: sip:3768720@130.97.10.5:5060 >>>> Via: SIP/2.0/UDP >>>> 130.97.35.171:5070;iid=417;branch=z9hG4bK5385369e3efe18109d438376cc92421d;uas-addr=130.97.10.5 >>>> CSeq: 1 NOTIFY >>>> Call-ID: 5385369e-3efe-1810-9603-8376cc92421d >>>> Contact: <sip:130.97.35.171:5070> >>>> Event: message-summary >>>> User-Agent: Sample UA >>>> Max-Forwards: 70 >>>> Messages-Waiting: yes >>>> Message-Account: sip:test_account@localhost >>>> Voice-Message: 1/1 >>>> Content-Length: 0 >>>> >>>> No. Time Source Destination >>>> Protocol Info >>>> 489 09:02:49.374563 130.97.10.5 130.97.35.171 SIP >>>> Status: 100 Trying >>>> >>>> Frame 489 (399 bytes on wire, 399 bytes captured) Ethernet II, Src: >>>> Cisco_f3:26:45 (00:18:ba:f3:26:45), Dst: Dell_4e:64:f8 >>>> (00:21:9b:4e:64:f8) Internet Protocol, Src: 130.97.10.5 >>>> (130.97.10.5), >>>> Dst: 130.97.35.171 (130.97.35.171) User Datagram Protocol, Src Port: >>>> ibm-pps (1376), Dst Port: vtsas (5070) >>>> Source port: ibm-pps (1376) >>>> Destination port: vtsas (5070) >>>> Length: 365 >>>> Checksum: 0x2aa2 [correct] >>>> Session Initiation Protocol >>>> Status-Line: SIP/2.0 100 Trying >>>> Message Header >>>> >>>> From:<sip:tes...@op...>;tag=5385369e3efe18109d428376cc92421d >>>> To:sip:3768720@130.97.10.5:5060 >>>> Call-ID:5385369e-3efe-1810-9603-8376cc92421d >>>> CSeq:1 NOTIFY >>>> Server:PBX-IP Media Gateway/2.1 >>>> Via:SIP/2.0/UDP >>>> 130.97.35.171:5070;iid=417;branch=z9hG4bK5385369e3efe18109d438376cc92421d;uas-addr=130.97.10.5 >>>> Content-Length:0 >>>> >>>> No. Time Source Destination >>>> Protocol Info >>>> 490 09:02:49.375037 130.97.10.5 130.97.35.171 SIP >>>> Status: 500 Internal Server Error >>>> >>>> Frame 490 (443 bytes on wire, 443 bytes captured) Ethernet II, Src: >>>> Cisco_f3:26:45 (00:18:ba:f3:26:45), Dst: Dell_4e:64:f8 >>>> (00:21:9b:4e:64:f8) Internet Protocol, Src: 130.97.10.5 >>>> (130.97.10.5), >>>> Dst: 130.97.35.171 (130.97.35.171) User Datagram Protocol, Src Port: >>>> ibm-pps (1376), Dst Port: vtsas (5070) >>>> Source port: ibm-pps (1376) >>>> Destination port: vtsas (5070) >>>> Length: 409 >>>> Checksum: 0x8abc [correct] >>>> Session Initiation Protocol >>>> Status-Line: SIP/2.0 500 Internal Server Error >>>> Message Header >>>> >>>> From:<sip:tes...@op...>;tag=5385369e3efe18109d428376cc92421d >>>> To:sip:3768720@130.97.10.5:5060;tag=27313246313536410067E556 >>>> Call-ID:5385369e-3efe-1810-9603-8376cc92421d >>>> CSeq:1 NOTIFY >>>> Server:PBX-IP Media Gateway/2.1 >>>> Via:SIP/2.0/UDP >>>> 130.97.35.171:5070;iid=417;branch=z9hG4bK5385369e3efe18109d438376cc92421d;uas-addr=130.97.10.5 >>>> Content-Length:0 >>>> >>>> -----Original Message----- >>>> From: Joegen Baclor [mailto:joe...@gm...] >>>> Sent: Thursday, April 16, 2009 11:11 PM >>>> To: ope...@li... >>>> Subject: Re: [OpenSIPStack] MWI Notify >>>> >>>> Hi Bill, >>>> >>>> Download the latest OpenSIPStack from CVS. There should now be a >>>> sample/client_server_demo directory. It contains the skeleton code >>>> for client and server UA. I've used unsolicited MWI notify in the >>>> client to >>>> better serve your purpose. Here is the snippet from the Main() >>>> function. >>>> It basically creates two user-agents bound to 5060 and 5070 >>>> respectively and >>>> let the client (5070) send MWI notify to the server(5060). You can >>>> get >>>> the >>>> response in OnIncomingSIPMessage of the client session. I also >>>> pasted the >>>> snippet below. Feel free to submit a tutorial based on your >>>> experience >>>> with this code. >>>> >>>> HTH, >>>> Joegen >>>> >>>> ----------------------------- >>>> >>>> void Process::Main() >>>> { >>>> #if WIN32 >>>> SetConsoleCtrlHandler(Win32SignalHandler, TRUE); >>>> #endif >>>> >>>> /// Create the server and and bind it to port 5060 >>>> m_UAS = new UA(); >>>> m_UAS->GetDefaultProfile().GetTransportProfile().EnableUDP( 0, >>>> 5060 ); >>>> m_UAS->Initialize(); >>>> m_UAS->StartTransportThreads(); >>>> m_UAS->m_SM = new SessionManager( *m_UAS ); >>>> >>>> /// Create the client and bind it to 5070 >>>> m_UAC = new UA(); >>>> m_UAC->GetDefaultProfile().GetTransportProfile().EnableUDP( 0, >>>> 5070 ); >>>> m_UAC->Initialize(); >>>> m_UAC->StartTransportThreads(); >>>> m_UAC->m_SM = new SessionManager( *m_UAC ); >>>> >>>> OString sesionId = ParserTools::GenGUID(); >>>> ClientSession * session = dynamic_cast<ClientSession >>>> *>(m_UAC->m_SM->CreateClientSession( m_UAC->GetDefaultProfile(), >>>> sesionId )); >>>> SIPURI target( "sip:test_account@localhost:5060" ); >>>> SIPURI localURI( "sip:tes...@op..." ); >>>> Via localVia; >>>> m_UAC->ConstructVia( target.GetAddress(), localVia, >>>> SIPTransport::UDP ); >>>> >>>> session->SetTargetURI( target ); >>>> session->SetRemoteURI( target ); >>>> session->SetLocalURI( localURI ); >>>> session->SetLocalVia( localVia ); >>>> >>>> /// Create a notify and send a test message to the server UA >>>> SIPMessage notify; >>>> if( session->CreateRequestOutOfDialog( SIPMessage::Method_NOTIFY, >>>> notify ) ) >>>> { >>>> Event event( "message-summary" ); >>>> notify.SetEvent( event ); >>>> >>>> /// Add Event specific headers headers >>>> SIPHeader messagesWaiting( "Messages-Waiting", "yes" ); >>>> SIPHeader messageAccount( "Message-Account", >>>> "sip:test_account@localhost" ); >>>> SIPHeader voiceMessage( "Voice-Message", "1/1" ); >>>> notify.AddCustomHeader( messagesWaiting ); >>>> notify.AddCustomHeader( messageAccount ); >>>> notify.AddCustomHeader( voiceMessage ); >>>> >>>> session->SendRequest( notify ); >>>> } >>>> >>>> Sleep( 5000 ); >>>> >>>> m_UAC->Terminate(); >>>> m_UAS->Terminate(); >>>> >>>> delete m_UAC; >>>> delete m_UAS; >>>> } >>>> >>>> >>>> >>>> void ClientSession::OnIncomingSIPMessage( >>>> SIPMessageArrival & messageEvent >>>> ) >>>> { >>>> SIPMessage message = messageEvent.GetMessage(); >>>> if( message.IsResponse() ) >>>> { >>>> LOG( LogInfo(), "Got SIP Reponse" ); >>>> }else >>>> { >>>> LOG( LogInfo(), "Got SIP Request" ) >>>> SIPMessage response; >>>> message.CreateResponse( response, SIPMessage::Code200_Ok ); >>>> SendRequest( response ); >>>> } >>>> Destroy(); >>>> } >>>> >>>> >>>> -------------------------------------------------- >>>> From: "Jamieson, William W" <jam...@RL...> >>>> Sent: Friday, April 17, 2009 11:24 AM >>>> To: "'Joegen Baclor'" <jb...@so...>; >>>> <ope...@li...> >>>> Subject: Re: [OpenSIPStack] MWI Notify >>>> >>>> >>>> >>>>> That's great! >>>>> >>>>> Thanks. >>>>> >>>>> -Bill >>>>> >>>>> -----Original Message----- >>>>> From: Joegen Baclor [mailto:joe...@gm...] >>>>> Sent: Thursday, April 16, 2009 6:25 PM >>>>> To: ope...@li... >>>>> Subject: Re: [OpenSIPStack] MWI Notify >>>>> >>>>> Hey Jaimieson, >>>>> >>>>> I'll try to crank up a sample application for MWI as your basis. It >>>>> quite >>>>> time we put some sample tutorials in opensipstack. Give it several >>>>> hours. >>>>> >>>>> Joegen >>>>> >>>>> -------------------------------------------------- >>>>> From: "Jamieson, William W" <jam...@RL...> >>>>> Sent: Thursday, April 16, 2009 9:35 PM >>>>> To: <ope...@li...> >>>>> Subject: [OpenSIPStack] MWI Notify >>>>> >>>>> >>>>> >>>>>> I'm really after sending an MWI Notify and I'm using the >>>>>> MWIResource and MWIPackage classes. It's an unsolicited Notify so >>>>>> I can't see why I need a subscription but that's the way the >>>>>> classes were written, I think. >>>>>> >>>>>> For now, I have given up on the two MWI classes. This is what I have: >>>>>> >>>>>> Make a SIPMessage called notify which I fill with all the fields I >>>>>> see defined in RFC 3842 (MWI) ... (code omitted) >>>>>> >>>>>> Make a sessionManager >>>>>> >>>>>> B2BUserAgent ua("MWI"); >>>>>> RFC3265ClientManager sessionMgr(ua, "MWI", 1, 1024 * 2); >>>>>> >>>>>> Make a SIPSession: >>>>>> >>>>>> RFC3265ClientManager::SubscriptionInfo info("reg", fromURI, >>>>>> "application/reginfo+xml"); // stole this so not sure what the >>>>>> args >>>>>> are >>>>>> OString sessionId = ParserTools::GenGUID(); SIPSession *session = >>>>>> sessionMgr.CreateClientSession(info, sessionId); // now I have the >>>>>> sessionId for the notify CallId which I add to the notify >>>>>> SIPMessage >>>>>> >>>>>> Send the request >>>>>> >>>>>> sessionMgr.SendRequest(invite); >>>>>> >>>>>> Though it compiles, I know it's not right since I'm not getting >>>>>> anything out on the wire. Am I even close? I thought of using this >>>>>> instead of the call to SendRequest but it doesn't seem right to >>>>>> call an event procedure directly... >>>>>> >>>>>> sessionMgr.OnUnsolicitedNotification(invite); >>>>>> >>>>>> It's very frustrating to work with no samples or docs, it's like >>>>>> trying to reverse engineer the whole thing. Can someone steer me >>>>>> to where I might find these? >>>>>> >>>>>> billjam >>>>>> ------------------------------------------------------------------ >>>>>> - >>>>>> - >>>>>> - >>>>>> - >>>>>> -------- Stay on top of everything new and different, both inside >>>>>> and around Java (TM) technology - register by April 22, and save >>>>>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>>>>> 300 plus technical and hands-on sessions. Register today. >>>>>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>>>>> _______________________________________________ >>>>>> opensipstack-devel mailing list >>>>>> ope...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>>> >>>>>> >>>>> >>>>>> No virus found in this incoming message. >>>>>> Checked by AVG - www.avg.com >>>>>> Version: 8.0.238 / Virus Database: 270.11.58/2061 - Release Date: >>>>>> 04/15/09 19:52:00 >>>>>> >>>>>> >>>>>> >>>>> ------------------------------------------------------------------- >>>>> - >>>>> - >>>>> - >>>>> -------- Stay on top of everything new and different, both inside >>>>> and around Java >>>>> (TM) technology - register by April 22, and save $200 on the >>>>> JavaOne >>>>> (SM) conference, June 2-5, 2009, San Francisco. >>>>> 300 plus technical and hands-on sessions. Register today. >>>>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> ------------------------------------------------------------------- >>>>> - >>>>> - >>>>> - >>>>> -------- Stay on top of everything new and different, both inside >>>>> and around Java (TM) technology - register by April 22, and save >>>>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>>>> 300 plus technical and hands-on sessions. Register today. >>>>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>>> No virus found in this incoming message. >>>>> Checked by AVG - www.avg.com >>>>> Version: 8.0.238 / Virus Database: 270.11.59/2063 - Release Date: >>>>> 04/16/09 16:38:00 >>>>> >>>>> >>>>> >>>> -------------------------------------------------------------------- >>>> - >>>> - >>>> -------- Stay on top of everything new and different, both inside >>>> and around Java (TM) technology - register by April 22, and save >>>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>>> 300 plus technical and hands-on sessions. Register today. >>>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> -------------------------------------------------------------------- >>>> - >>>> - >>>> -------- Stay on top of everything new and different, both inside >>>> and around Java (TM) technology - register by April 22, and save >>>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>>> 300 plus technical and hands-on sessions. Register today. >>>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> - >>> -------- Stay on top of everything new and different, both inside and >>> around Java (TM) technology - register by April 22, and save $200 on >>> the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>> 300 plus technical and hands-on sessions. Register today. >>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> --------------------------------------------------------------------- >>> - >>> -------- Stay on top of everything new and different, both inside and >>> around Java (TM) technology - register by April 22, and save $200 on >>> the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>> 300 plus technical and hands-on sessions. Register today. >>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >> >> ---------------------------------------------------------------------- >> -------- Stay on top of everything new and different, both inside and >> around Java >> (TM) technology - register by April 22, and save $200 on the JavaOne >> (SM) conference, June 2-5, 2009, San Francisco. >> 300 plus technical and hands-on sessions. Register today. >> Use priority code J9JMT32. http://p.sf.net/sfu/p >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ---------------------------------------------------------------------- >> -------- Stay on top of everything new and different, both inside and >> around Java (TM) technology - register by April 22, and save $200 on >> the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >> 300 plus technical and hands-on sessions. Register today. >> Use priority code J9JMT32. http://p.sf.net/sfu/p >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > >> >> No virus found in this incoming message. >> Checked by AVG - www.avg.com >> Version: 8.0.238 / Virus Database: 270.12.1/2070 - Release Date: >> 04/20/09 17:56:00 >> > > ------------------------------------------------------------------------------ > Stay on top of everything new and different, both inside and around Java > (TM) technology - register by April 22, and save $200 on the JavaOne (SM) > conference, June 2-5, 2009, San Francisco. > 300 plus technical and hands-on sessions. Register today. > Use priority code J9JMT32. http://p.sf.net/sfu/p > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.0.238 / Virus Database: 270.12.2/2072 - Release Date: 04/21/09 > 16:48:00 > |