Re: [OpenSIPStack] MWI Notify
Brought to you by:
joegenbaclor
From: Joegen B. <joe...@gm...> - 2009-04-21 22:46:45
|
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 > |