opensipstack-devel Mailing List for OpenSIPStack (Page 37)
Brought to you by:
joegenbaclor
You can subscribe to this list here.
2006 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(5) |
Jun
(12) |
Jul
(4) |
Aug
(3) |
Sep
(24) |
Oct
(45) |
Nov
(41) |
Dec
(67) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(51) |
Feb
(93) |
Mar
(54) |
Apr
(76) |
May
(114) |
Jun
(133) |
Jul
(124) |
Aug
(180) |
Sep
(53) |
Oct
(41) |
Nov
(109) |
Dec
(92) |
2008 |
Jan
(52) |
Feb
(40) |
Mar
(29) |
Apr
(40) |
May
(83) |
Jun
(68) |
Jul
(30) |
Aug
(72) |
Sep
(50) |
Oct
(48) |
Nov
(25) |
Dec
(80) |
2009 |
Jan
(9) |
Feb
(2) |
Mar
(32) |
Apr
(67) |
May
|
Jun
(7) |
Jul
(7) |
Aug
(4) |
Sep
(3) |
Oct
|
Nov
(6) |
Dec
(2) |
2010 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
(10) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
(5) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
(1) |
Apr
(2) |
May
(2) |
Jun
|
Jul
|
Aug
(5) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Ilian J. C. P. <ip...@so...> - 2007-11-26 05:53:41
|
Hi, I think that you are missing aximp.exe or the path to it is not visible. aximp.exe was introduced in the Pre-build event for convenience but is not really required for compilation. It helps ensure that the latest update of the ATLSIP control is registered prior to compilation. Anyway, are you using a non-Express edition Visual Studio? If so, confirm that you have aximp.exe installed with your VS. If you used the default install location, it should be in C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin. If you're using the Express edition, you may have to download the Platform/Windows SDK. Although, I'm not really sure it's included there. - Ilian sebastian pastor wrote: > Hi, > > Thanks. I finally opened the OSSPhone project and compile it. It worked for > previous versions of libraries (the ones downloaded via web). But with the > ATLSIP module downloaded sing CVS i'm finding this compiling error (in > OSSPhone.vcproj): > > Project : error* PRJ0019*: Una herramienta devolvió un código de error de > "Ejecutando evento anterior a la generación..." > (Project: error PRJ0019: A tool returned an error code from "Executing event > previous to generation...") > > Attached you have the .log (BTW, i'm using Visual Studio 2005 through > Windows XP) > > Thanks > > > 2007/11/22, Ilian Jeri C. Pinzon <ip...@so...>: > >> Hi, >> >> You should be able to safely ignore that error. It's not really a >> requirement. The .vdproj file is for OSSPhone's installer project (MSI). >> Which, I'm afraid, is not available in the Express editions. >> >> Yes. If you have at least the Standard version, you can load the >> installer project. >> >> Regards, >> Ilian >> >> sebastian pastor wrote: >> >>> Hi all, >>> >>> last version of ATLSIP project includes a file with extension .vdproj. I >>> have a failure when trying to open OSSPhone.vcproj because it says that >>> >> i >> >>> don't have an aplication for .vdproj files installed. >>> I'm runing on a Visual C++ 2005 Express Edition through Windows XP, >>> >> would it >> >>> be fixed if i use a complete Visual Studio instead of Express one?? >>> >>> Thank you in advance >>> (BTW, i'm having problems finding Visual Studio. i suppose that it's a >>> highly-protected-with-license tool :S) >>> >>> >> ------------------------------------------------------------------------- >> >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> ------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> |
From: sebastian p. <seb...@gm...> - 2007-11-25 11:38:23
|
Hi, Thanks. I finally opened the OSSPhone project and compile it. It worked for previous versions of libraries (the ones downloaded via web). But with the ATLSIP module downloaded sing CVS i'm finding this compiling error (in OSSPhone.vcproj): Project : error* PRJ0019*: Una herramienta devolvi=F3 un c=F3digo de error = de "Ejecutando evento anterior a la generaci=F3n..." (Project: error PRJ0019: A tool returned an error code from "Executing even= t previous to generation...") Attached you have the .log (BTW, i'm using Visual Studio 2005 through Windows XP) Thanks 2007/11/22, Ilian Jeri C. Pinzon <ip...@so...>: > > Hi, > > You should be able to safely ignore that error. It's not really a > requirement. The .vdproj file is for OSSPhone's installer project (MSI). > Which, I'm afraid, is not available in the Express editions. > > Yes. If you have at least the Standard version, you can load the > installer project. > > Regards, > Ilian > > sebastian pastor wrote: > > Hi all, > > > > last version of ATLSIP project includes a file with extension .vdproj. = I > > have a failure when trying to open OSSPhone.vcproj because it says that > i > > don't have an aplication for .vdproj files installed. > > I'm runing on a Visual C++ 2005 Express Edition through Windows XP, > would it > > be fixed if i use a complete Visual Studio instead of Express one?? > > > > Thank you in advance > > (BTW, i'm having problems finding Visual Studio. i suppose that it's a > > highly-protected-with-license tool :S) > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Microsoft > > Defy all challenges. Microsoft(R) Visual Studio 2005. > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > _______________________________________________ > > opensipstack-devel mailing list > > ope...@li... > > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > |
From: Joegen E. B. <joe...@gm...> - 2007-11-24 23:32:53
|
Zhang GuoQi wrote: > About OSS(1.1.7) OpenSBC(1.1.4) and the new version from CVS. There is a > strange Probolem. > File: B2BUAConnection.h > > I add a variable: ( int m_OutboundAttempts) above > (B2BRoutingInterface::B2BRouteList > m_Routes). > Code List Here: > --------------------------------------------- > BOOL m_EnableUpstreamProxyRoute; > > int m_OutboundAttempts; > > B2BRoutingInterface::B2BRouteList m_Routes; > B2BRoutingInterface::B2BRouteList m_UpstreamProxyRoutes; > OString m_UpstreamBackdoorURI; > ----------------------------------------------------------------------- > > Then it can compile successful.then i run opensbc, UserA and UserB register > to opensbc, UserA invite UserB, it will core dump.Why? > > Thanks! I don't find anything in the code you pasted that would trigger an access violation. I am suspecting that your build is corrupted. Since the change you made is in a header file, it is always a good idea to "make clean" after applying such change. After a clean build and your problem still lingers, do a back trace on the core file using GDB and post the stack here. Joegen |
From: Joegen E. B. <joe...@gm...> - 2007-11-24 23:28:49
|
Thomas Raschbacher wrote: > After looking into it a bit more it seems that B2BUA handles the proxy, registrar, .. stuff that we'd need .. so in your opinion is it worth spending more time looking into using B2BUA classes in favour of SIPStack or is that a more-or-less pointless exercise? > > Thanks > > I do not advise it. The B2BUA is on top of the food chain. If you decide to change the B2BUA code, it will automatically make it harder for you to upgrade to newer releases of OpenSIPStack. The B2BUA has various handlers. B2B*Interface classes. These handlers provide hooks for application developer to customize the behavior of the B2BUA. If you need new handlers to be exposed, you may vote for such handlers to be added but you need to justify why. I will be happy to add them. |
From: Zhang G. <zg...@gm...> - 2007-11-24 01:02:11
|
About OSS(1.1.7) OpenSBC(1.1.4) and the new version from CVS. There is a strange Probolem. File: B2BUAConnection.h I add a variable: ( int m_OutboundAttempts) above (B2BRoutingInterface::B2BRouteList m_Routes). Code List Here: --------------------------------------------- BOOL m_EnableUpstreamProxyRoute; int m_OutboundAttempts; B2BRoutingInterface::B2BRouteList m_Routes; B2BRoutingInterface::B2BRouteList m_UpstreamProxyRoutes; OString m_UpstreamBackdoorURI; ----------------------------------------------------------------------- Then it can compile successful.then i run opensbc, UserA and UserB register to opensbc, UserA invite UserB, it will core dump.Why? Thanks! |
From: Thomas R. <tho...@it...> - 2007-11-23 14:51:28
|
After looking into it a bit more it seems that B2BUA handles the proxy, reg= istrar, .. stuff that we'd need .. so in your opinion is it worth spending = more time looking into using B2BUA classes in favour of SIPStack or is that= a more-or-less pointless exercise? Thanks -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of Thomas Raschbacher Sent: Freitag, 23. November 2007 14:32 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question That is like half of the evaluation .. would we use opensipstack and write = our own server or do we use opensbc and let it talk to our server Both have advantages and disadvantages of course. I'm just trying to figure out what exactly is done in OpenSBC that is not h= andled in OpenSipStack (e.g. I know SIP::SIPStack 'has' a SIPTransactionMan= ager and SIPTimerManager but I still have to figure out how exactly it all = works together ..) For example I give the SIPStack a REGISTER and it then puts a SIPStackEvent= in the eventqueue which I can get back with ReadEvent() which in turn enab= les me to get the SIPMessage again in that event handler through SIP::SIPMe= ssageArrival .. But I would like the Stack to handle things like sending ba= ck a message with WWW-Authenticate header so that the client can authentica= te (unless in a trusted domain ..) and then just let me know the outcome of= the client's reply to this .. or if there's an INVITE I want the stack to = automatically send back TRYING to the UA. Where would this stuff be handled= ? In openSBC or openSIPStack - and which class/method? Regards -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of Joegen E. Baclor Sent: Freitag, 23. November 2007 14:16 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question I think you are still in the right place. Your application may choose which transactions it will pass to OpenSBC/OpenSIPStack using the subclass SIP::SIPStack class. If you want to rewrite any of the headers before OpenSBC sends it out, you can have direct access to the packet in B2BCallInterface::OnOutgoingCall(). If you want to change the SIP Headers before OpenSBC can process it, you may hijack it in B2BCallInterface::OnInComingCall(). In my opinion however, the most elegant way of using OpenSBC is to use it as it is. You can run it using a different port from you app and use normal SIP Redirect to selectively route transactions to OpenSBC. You can then just hijack the messages using the different B2BUAHandlers or you may altogether just scrap OpenSBC and write your own using OpenSIPStack. HTH Joegen Thomas Raschbacher wrote: > So.. if I want to use a 'higher' / transactional interface would I be bes= t off using SIPTransactions or rather SIPFSM::InviteServerTransaction, SIPF= SM::NonInviteServerTransaction and SIPFSM::InviteClientTransaction, SIPFSM:= :NonInviteClientTransaction ? > > Due to the fact that we want to be able to set nearly all sip headers (an= d some of sdp too) from our application we are not sure yet if we are even = going to use OpenSBC or just OpenSIPStack directly to minimize the overhead= of 2 applications communicating with each other. Also we want to be able t= o act as a proxy and registrar (just like OpenSBC can do if I understand th= at right) but possibly also as a client when connecting to another server. > > What would be the best way to do this in your opinion? > > -----Original Message----- > From: ope...@li... [mailto:opensipsta= ck-...@li...] On Behalf Of joegen@opensipstack.or= g > Sent: Freitag, 23. November 2007 12:57 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Thomas Raschbacher wrote: > >> Thanks. The 1st one solved my problem. >> >> So .. if I wanted to use a custom authentication class I assume I'd have= to inherit from B2BAuthInterface right? Also how would I then use that? >> Meaning I still want opensipstack to handle the authentification when it= gets a REGISTER (with www-auth,..), but want to get the user-credentials f= rom our system instead of storing them in a list like OpenSBC does.. >> >> > > You are looking at the right place. For a guy asking for > documentations, you're doing quire well. > > >> To clarify I want opensipstack to handle the sip requests, but need it t= o call methods in our application to get information about users, wether to= allow a call or not, ... (also want to always route RTP through the applic= ation so that the conversation can be recorded if needed.) >> >> > > If you want to not let opensbc handle RTP, you may need to override > methods in B2BMediaInterface. You may simply comment out the entire > code blocks of TranslateSDPOffer and TranslateSDPAnswer and just return > TRUE in both places. > > > >> /me continues evaluation of opensipstack ;) >> >> -----Original Message----- >> From: ope...@li... [mailto:opensipst= ack...@li...] On Behalf Of joegen@opensipstack.o= rg >> Sent: Freitag, 23. November 2007 11:28 >> To: ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> Two possible reasons: >> >> 1. You are passing the address of SIPMessage msg to the SIPTransport >> event which will be destroyed as soon as this function loses scope. >> Try >> >> new SIPTransports::SIPTransportEvent( new SIPMessage(msg), >> SIPTransports::SIPTransportEvent::UDPPacketArrival); >> >> instead. SIPTransportEvent deletes this pointer in its destructor. >> >> 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap to >> store NEWly create Objects. Try putting a "#define new PNEW" in the >> beginning of this file to force you new operator to use the correct >> implementation. >> >> From what I see, the culprit is item 1. >> >> Thomas Raschbacher wrote: >> >> >>> Hi. >>> >>> Please have a look at the following code: >>> >>> class OpenSipStack_StackTest >>> { >>> public: >>> void TransportEventTest(SIPMessage msg); >>> OpenSipStack_StackTest() >>> { >>> m_Stack =3D new SIP::SIPStack(); >>> } >>> private: >>> SIP::SIPStack * m_Stack; >>> } >>> >>> void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPMe= ssage msg) >>> { >>> SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::SI= PTransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival); >>> >>> this->m_Stack->OnTransportEvent(evt); >>> //this->OnTransportEvent(evt); // class was derived from SIP::S= IPStack before.. >>> } >>> >>> This is the program's output (I used a register message from the SIP rf= c): >>> 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED >>> 23:18:32.943 DBG: [CID=3D0x06e0] >>> 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (1826= ) >>> 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... >>> 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... >>> 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE >>> 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: >>> 23:18:32.943 DBG: [CID=3D0x06e0] >>> 23:18:32.953 DBG: [CID=3D0x06e0] >>> 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NIS= T) *** >>> 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:registr= ar.biloxi.c >>> om SIP/2.0 >>> 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998s= dasdh09 >>> 23:18:32.953 DBG: [CID=3D0x06e0] >>> 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED *= ** - NIST|8 >>> 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER >>> >>> At that point I get it triggering a breakpoint - heap related >>> HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to RtlV= alidateHeap( 00350000, 0012FC94 ) >>> Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. >>> >>> This may be due to a corruption of the heap, and indicates a bug in Ope= nSipStackTestConsoleApp.exe or any of the DLLs it has loaded. >>> >>> The output window may have more diagnostic information >>> >>> (that is all from the output window..) >>> >>> This seems to happen at the end of the OnTransportEvent method (SIPStac= k.cxx: 431 ... delete event; ) >>> >>> Any ideas? >>> >>> Thanks >>> >>> -----Original Message----- >>> From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of joegen@opensipstack.= org >>> Sent: Freitag, 23. November 2007 10:27 >>> To: ope...@li... >>> Subject: Re: [OpenSIPStack] Server implementation question >>> >>> SIP::SIPStack is probably the best place for you then. You just need t= o >>> create your own SIPTransportEvent and feed it to OnTransportEvent() >>> virtual method. I agree that there is not much to work with in terms >>> of documentation and I assure you that this is not a permanent >>> condition. It is just that all the hands working on the project are >>> currently busy with actual coding of functionalities. For now, you're >>> best bet is to ask questions and we can answer it to the best of our >>> abilities. I also have plans of creating a near C API wrapper for the >>> stack to make implementors and integrators life easier. One thing >>> that might be a bit of a road block for you is that OpenSIPStack design >>> is not modular and that almost all components like the Transport, FSM >>> and the core are intertwined. Thus, if you need to use third party >>> replace ments, you will need to subclass the right component. >>> >>> >>> Thomas Raschbacher wrote: >>> >>> >>> >>>> Joegen, >>>> >>>> Well the main thing is that the transport layer is partially existing = already and needs to be implemented in some other part of the application I= think (also we need TCP and TLS too). Problem is that we need to do the sw= itching and deciding if a call is valid or not,.. ourselves. >>>> Maybe I missed something and this functionality can be achieved otherw= ise (our application does have hardware to connect to analogue/digital phon= es as well as does the switching and more or less the 'media server/proxy' = too. Of course we want to use our switching and the media proxying - since = call recording is a required features.) >>>> >>>> If there is an easier way to achieve this please let me know as it is = a bit difficult to find those things out as I couldn't find a lot of develo= per documentation / the code isn't commented very much explaining which cla= ss exactly does what. >>>> >>>> Regards, >>>> P.S.: I'm currently playing around with sending Transport events to a = derived class of SIP::SIPStack and having that process the event to find ou= t exactly what level of processing this class does already ... It would rea= lly help me if there was some sort of documentation like an architecture di= agram or some short description of which class would be best to use if I wa= nt some basic replies and timeouts already implemented, as I don't know if = SIPStack is even the right choice or if I rather should look at SIPFSM, ... >>>> >>>> >>>> -----Original Message----- >>>> From: ope...@li... [mailto:opensip= sta...@li...] On Behalf Of Joegen E. Baclor >>>> Sent: Freitag, 23. November 2007 09:39 >>>> To: jo...@op...; ope...@li... >>>> Subject: Re: [OpenSIPStack] Server implementation question >>>> >>>> Thomas, >>>> >>>> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you ar= e >>>> afraid that the modification below will render your proprietary code >>>> violating the license, do not worry. The only thing covered by the MP= L >>>> is the modification done to OpenSIPStack alone and not your entire >>>> application. Thus, If you indeed deploy your own transport, then the >>>> code block below is the only thing you are obliged to make open or >>>> contribute back to OpenSIPStack. Can you share why you want to use >>>> another transport though? >>>> >>>> Joegen >>>> >>>> jo...@op... wrote: >>>> >>>> >>>> >>>> >>>>> Hi Thomas, >>>>> >>>>> You need to create your custom transports as descendant of >>>>> SIPTransport. You would then need to override the following Virtual >>>>> Method in SIPTransportManager to return an instance fo your custom tr= ansport >>>>> >>>>> SIPTransport * SIPTransportManager::OnCreateTransport( >>>>> const char * userAgentName, >>>>> SIPTransport::Protocol protocol >>>>> ) >>>>> { >>>>> if( protocol =3D=3D SIPTransport::UDP ) >>>>> return new SIPUDPTransport( userAgentName, this ); >>>>> else if( protocol =3D=3D SIPTransport::TCP ) >>>>> return new SIPTCPTransport( userAgentName, this ); >>>>> >>>>> return NULL; >>>>> } >>>>> >>>>> >>>>> Hope that helps. >>>>> >>>>> Joegen >>>>> >>>>> Thomas Raschbacher wrote: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>> Hi, >>>>>> >>>>>> If I wanted to use a custom transport without changing opensipstackc= ode itself (ie it being in a different library and just sending events to t= he stack when it receives / sends/sent messages) how would I best do that? = (Need to use existing transports in non (L)GPL application, but want to use= as much of opensipstack as possible - the parser itself is no problem of c= ourse, but I'd like to use a higher 'level' than just that which also imple= ments timers and responses like TRYING, ...) >>>>>> >>>>>> Regards, >>>>>> >>>>>> Mit freundlichen Gr=FC=DFen >>>>>> Thomas Raschbacher >>>>>> ____________________________________________ >>>>>> itCampus Technology GmbH >>>>>> =D6sterreich * Deutschland * Italien >>>>>> Wehlistra=DFe 27b >>>>>> 1200 Wien >>>>>> tho...@it... >>>>>> Tel: +43 (1) 33418557-58 >>>>>> Fax: +43 (1) 33418557-958 >>>>>> http://www.itctec.com >>>>>> UID: ATU 6339 0618 >>>>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>>>> Joint Venture von itCampus und MEC >>>>>> >>>>>> itCampus Gruppe >>>>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * = Slowakei >>>>>> http://www.itcampus.eu >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------= ----- >>>>>> This SF.net email is sponsored by: Microsoft >>>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>>> _______________________________________________ >>>>>> opensipstack-devel mailing list >>>>>> ope...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> ---------------------------------------------------------------------= ---- >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> ----------------------------------------------------------------------= --- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> ----------------------------------------------------------------------= --- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel |
From: Thomas R. <tho...@it...> - 2007-11-23 13:32:29
|
That is like half of the evaluation .. would we use opensipstack and write = our own server or do we use opensbc and let it talk to our server Both have advantages and disadvantages of course. I'm just trying to figure out what exactly is done in OpenSBC that is not h= andled in OpenSipStack (e.g. I know SIP::SIPStack 'has' a SIPTransactionMan= ager and SIPTimerManager but I still have to figure out how exactly it all = works together ..) For example I give the SIPStack a REGISTER and it then puts a SIPStackEvent= in the eventqueue which I can get back with ReadEvent() which in turn enab= les me to get the SIPMessage again in that event handler through SIP::SIPMe= ssageArrival .. But I would like the Stack to handle things like sending ba= ck a message with WWW-Authenticate header so that the client can authentica= te (unless in a trusted domain ..) and then just let me know the outcome of= the client's reply to this .. or if there's an INVITE I want the stack to = automatically send back TRYING to the UA. Where would this stuff be handled= ? In openSBC or openSIPStack - and which class/method? Regards -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of Joegen E. Baclor Sent: Freitag, 23. November 2007 14:16 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question I think you are still in the right place. Your application may choose which transactions it will pass to OpenSBC/OpenSIPStack using the subclass SIP::SIPStack class. If you want to rewrite any of the headers before OpenSBC sends it out, you can have direct access to the packet in B2BCallInterface::OnOutgoingCall(). If you want to change the SIP Headers before OpenSBC can process it, you may hijack it in B2BCallInterface::OnInComingCall(). In my opinion however, the most elegant way of using OpenSBC is to use it as it is. You can run it using a different port from you app and use normal SIP Redirect to selectively route transactions to OpenSBC. You can then just hijack the messages using the different B2BUAHandlers or you may altogether just scrap OpenSBC and write your own using OpenSIPStack. HTH Joegen Thomas Raschbacher wrote: > So.. if I want to use a 'higher' / transactional interface would I be bes= t off using SIPTransactions or rather SIPFSM::InviteServerTransaction, SIPF= SM::NonInviteServerTransaction and SIPFSM::InviteClientTransaction, SIPFSM:= :NonInviteClientTransaction ? > > Due to the fact that we want to be able to set nearly all sip headers (an= d some of sdp too) from our application we are not sure yet if we are even = going to use OpenSBC or just OpenSIPStack directly to minimize the overhead= of 2 applications communicating with each other. Also we want to be able t= o act as a proxy and registrar (just like OpenSBC can do if I understand th= at right) but possibly also as a client when connecting to another server. > > What would be the best way to do this in your opinion? > > -----Original Message----- > From: ope...@li... [mailto:opensipsta= ck-...@li...] On Behalf Of joegen@opensipstack.or= g > Sent: Freitag, 23. November 2007 12:57 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Thomas Raschbacher wrote: > >> Thanks. The 1st one solved my problem. >> >> So .. if I wanted to use a custom authentication class I assume I'd have= to inherit from B2BAuthInterface right? Also how would I then use that? >> Meaning I still want opensipstack to handle the authentification when it= gets a REGISTER (with www-auth,..), but want to get the user-credentials f= rom our system instead of storing them in a list like OpenSBC does.. >> >> > > You are looking at the right place. For a guy asking for > documentations, you're doing quire well. > > >> To clarify I want opensipstack to handle the sip requests, but need it t= o call methods in our application to get information about users, wether to= allow a call or not, ... (also want to always route RTP through the applic= ation so that the conversation can be recorded if needed.) >> >> > > If you want to not let opensbc handle RTP, you may need to override > methods in B2BMediaInterface. You may simply comment out the entire > code blocks of TranslateSDPOffer and TranslateSDPAnswer and just return > TRUE in both places. > > > >> /me continues evaluation of opensipstack ;) >> >> -----Original Message----- >> From: ope...@li... [mailto:opensipst= ack...@li...] On Behalf Of joegen@opensipstack.o= rg >> Sent: Freitag, 23. November 2007 11:28 >> To: ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> Two possible reasons: >> >> 1. You are passing the address of SIPMessage msg to the SIPTransport >> event which will be destroyed as soon as this function loses scope. >> Try >> >> new SIPTransports::SIPTransportEvent( new SIPMessage(msg), >> SIPTransports::SIPTransportEvent::UDPPacketArrival); >> >> instead. SIPTransportEvent deletes this pointer in its destructor. >> >> 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap to >> store NEWly create Objects. Try putting a "#define new PNEW" in the >> beginning of this file to force you new operator to use the correct >> implementation. >> >> From what I see, the culprit is item 1. >> >> Thomas Raschbacher wrote: >> >> >>> Hi. >>> >>> Please have a look at the following code: >>> >>> class OpenSipStack_StackTest >>> { >>> public: >>> void TransportEventTest(SIPMessage msg); >>> OpenSipStack_StackTest() >>> { >>> m_Stack =3D new SIP::SIPStack(); >>> } >>> private: >>> SIP::SIPStack * m_Stack; >>> } >>> >>> void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPMe= ssage msg) >>> { >>> SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::SI= PTransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival); >>> >>> this->m_Stack->OnTransportEvent(evt); >>> //this->OnTransportEvent(evt); // class was derived from SIP::S= IPStack before.. >>> } >>> >>> This is the program's output (I used a register message from the SIP rf= c): >>> 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED >>> 23:18:32.943 DBG: [CID=3D0x06e0] >>> 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (1826= ) >>> 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... >>> 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... >>> 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE >>> 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: >>> 23:18:32.943 DBG: [CID=3D0x06e0] >>> 23:18:32.953 DBG: [CID=3D0x06e0] >>> 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NIS= T) *** >>> 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:registr= ar.biloxi.c >>> om SIP/2.0 >>> 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998s= dasdh09 >>> 23:18:32.953 DBG: [CID=3D0x06e0] >>> 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED *= ** - NIST|8 >>> 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER >>> >>> At that point I get it triggering a breakpoint - heap related >>> HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to RtlV= alidateHeap( 00350000, 0012FC94 ) >>> Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. >>> >>> This may be due to a corruption of the heap, and indicates a bug in Ope= nSipStackTestConsoleApp.exe or any of the DLLs it has loaded. >>> >>> The output window may have more diagnostic information >>> >>> (that is all from the output window..) >>> >>> This seems to happen at the end of the OnTransportEvent method (SIPStac= k.cxx: 431 ... delete event; ) >>> >>> Any ideas? >>> >>> Thanks >>> >>> -----Original Message----- >>> From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of joegen@opensipstack.= org >>> Sent: Freitag, 23. November 2007 10:27 >>> To: ope...@li... >>> Subject: Re: [OpenSIPStack] Server implementation question >>> >>> SIP::SIPStack is probably the best place for you then. You just need t= o >>> create your own SIPTransportEvent and feed it to OnTransportEvent() >>> virtual method. I agree that there is not much to work with in terms >>> of documentation and I assure you that this is not a permanent >>> condition. It is just that all the hands working on the project are >>> currently busy with actual coding of functionalities. For now, you're >>> best bet is to ask questions and we can answer it to the best of our >>> abilities. I also have plans of creating a near C API wrapper for the >>> stack to make implementors and integrators life easier. One thing >>> that might be a bit of a road block for you is that OpenSIPStack design >>> is not modular and that almost all components like the Transport, FSM >>> and the core are intertwined. Thus, if you need to use third party >>> replace ments, you will need to subclass the right component. >>> >>> >>> Thomas Raschbacher wrote: >>> >>> >>> >>>> Joegen, >>>> >>>> Well the main thing is that the transport layer is partially existing = already and needs to be implemented in some other part of the application I= think (also we need TCP and TLS too). Problem is that we need to do the sw= itching and deciding if a call is valid or not,.. ourselves. >>>> Maybe I missed something and this functionality can be achieved otherw= ise (our application does have hardware to connect to analogue/digital phon= es as well as does the switching and more or less the 'media server/proxy' = too. Of course we want to use our switching and the media proxying - since = call recording is a required features.) >>>> >>>> If there is an easier way to achieve this please let me know as it is = a bit difficult to find those things out as I couldn't find a lot of develo= per documentation / the code isn't commented very much explaining which cla= ss exactly does what. >>>> >>>> Regards, >>>> P.S.: I'm currently playing around with sending Transport events to a = derived class of SIP::SIPStack and having that process the event to find ou= t exactly what level of processing this class does already ... It would rea= lly help me if there was some sort of documentation like an architecture di= agram or some short description of which class would be best to use if I wa= nt some basic replies and timeouts already implemented, as I don't know if = SIPStack is even the right choice or if I rather should look at SIPFSM, ... >>>> >>>> >>>> -----Original Message----- >>>> From: ope...@li... [mailto:opensip= sta...@li...] On Behalf Of Joegen E. Baclor >>>> Sent: Freitag, 23. November 2007 09:39 >>>> To: jo...@op...; ope...@li... >>>> Subject: Re: [OpenSIPStack] Server implementation question >>>> >>>> Thomas, >>>> >>>> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you ar= e >>>> afraid that the modification below will render your proprietary code >>>> violating the license, do not worry. The only thing covered by the MP= L >>>> is the modification done to OpenSIPStack alone and not your entire >>>> application. Thus, If you indeed deploy your own transport, then the >>>> code block below is the only thing you are obliged to make open or >>>> contribute back to OpenSIPStack. Can you share why you want to use >>>> another transport though? >>>> >>>> Joegen >>>> >>>> jo...@op... wrote: >>>> >>>> >>>> >>>> >>>>> Hi Thomas, >>>>> >>>>> You need to create your custom transports as descendant of >>>>> SIPTransport. You would then need to override the following Virtual >>>>> Method in SIPTransportManager to return an instance fo your custom tr= ansport >>>>> >>>>> SIPTransport * SIPTransportManager::OnCreateTransport( >>>>> const char * userAgentName, >>>>> SIPTransport::Protocol protocol >>>>> ) >>>>> { >>>>> if( protocol =3D=3D SIPTransport::UDP ) >>>>> return new SIPUDPTransport( userAgentName, this ); >>>>> else if( protocol =3D=3D SIPTransport::TCP ) >>>>> return new SIPTCPTransport( userAgentName, this ); >>>>> >>>>> return NULL; >>>>> } >>>>> >>>>> >>>>> Hope that helps. >>>>> >>>>> Joegen >>>>> >>>>> Thomas Raschbacher wrote: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>> Hi, >>>>>> >>>>>> If I wanted to use a custom transport without changing opensipstackc= ode itself (ie it being in a different library and just sending events to t= he stack when it receives / sends/sent messages) how would I best do that? = (Need to use existing transports in non (L)GPL application, but want to use= as much of opensipstack as possible - the parser itself is no problem of c= ourse, but I'd like to use a higher 'level' than just that which also imple= ments timers and responses like TRYING, ...) >>>>>> >>>>>> Regards, >>>>>> >>>>>> Mit freundlichen Gr=FC=DFen >>>>>> Thomas Raschbacher >>>>>> ____________________________________________ >>>>>> itCampus Technology GmbH >>>>>> =D6sterreich * Deutschland * Italien >>>>>> Wehlistra=DFe 27b >>>>>> 1200 Wien >>>>>> tho...@it... >>>>>> Tel: +43 (1) 33418557-58 >>>>>> Fax: +43 (1) 33418557-958 >>>>>> http://www.itctec.com >>>>>> UID: ATU 6339 0618 >>>>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>>>> Joint Venture von itCampus und MEC >>>>>> >>>>>> itCampus Gruppe >>>>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * = Slowakei >>>>>> http://www.itcampus.eu >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------= ----- >>>>>> This SF.net email is sponsored by: Microsoft >>>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>>> _______________________________________________ >>>>>> opensipstack-devel mailing list >>>>>> ope...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> ---------------------------------------------------------------------= ---- >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> ----------------------------------------------------------------------= --- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> ----------------------------------------------------------------------= --- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel |
From: Joegen E. B. <joe...@gm...> - 2007-11-23 13:16:16
|
I think you are still in the right place. Your application may choose=20 which transactions it will pass to OpenSBC/OpenSIPStack using the=20 subclass SIP::SIPStack class. If you want to rewrite any of the=20 headers before OpenSBC sends it out, you can have direct access to the=20 packet in B2BCallInterface::OnOutgoingCall(). If you want to change the = SIP Headers before OpenSBC can process it, you may hijack it in=20 B2BCallInterface::OnInComingCall(). In my opinion however, the most=20 elegant way of using OpenSBC is to use it as it is. You can run it=20 using a different port from you app and use normal SIP Redirect to=20 selectively route transactions to OpenSBC. You can then just hijack=20 the messages using the different B2BUAHandlers or you may altogether=20 just scrap OpenSBC and write your own using OpenSIPStack. =20 HTH Joegen Thomas Raschbacher wrote: > So.. if I want to use a 'higher' / transactional interface would I be b= est off using SIPTransactions or rather SIPFSM::InviteServerTransaction, = SIPFSM::NonInviteServerTransaction and SIPFSM::InviteClientTransaction, S= IPFSM::NonInviteClientTransaction ? > > Due to the fact that we want to be able to set nearly all sip headers (= and some of sdp too) from our application we are not sure yet if we are e= ven going to use OpenSBC or just OpenSIPStack directly to minimize the ov= erhead of 2 applications communicating with each other. Also we want to b= e able to act as a proxy and registrar (just like OpenSBC can do if I und= erstand that right) but possibly also as a client when connecting to anot= her server. > > What would be the best way to do this in your opinion? > > -----Original Message----- > From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of joegen@opensipstac= k.org > Sent: Freitag, 23. November 2007 12:57 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Thomas Raschbacher wrote: > =20 >> Thanks. The 1st one solved my problem. >> >> So .. if I wanted to use a custom authentication class I assume I'd ha= ve to inherit from B2BAuthInterface right? Also how would I then use that= ? >> Meaning I still want opensipstack to handle the authentification when = it gets a REGISTER (with www-auth,..), but want to get the user-credentia= ls from our system instead of storing them in a list like OpenSBC does.. >> >> =20 > > You are looking at the right place. For a guy asking for > documentations, you're doing quire well. > > =20 >> To clarify I want opensipstack to handle the sip requests, but need it= to call methods in our application to get information about users, wethe= r to allow a call or not, ... (also want to always route RTP through the = application so that the conversation can be recorded if needed.) >> >> =20 > > If you want to not let opensbc handle RTP, you may need to override > methods in B2BMediaInterface. You may simply comment out the entire > code blocks of TranslateSDPOffer and TranslateSDPAnswer and just return= > TRUE in both places. > > > =20 >> /me continues evaluation of opensipstack ;) >> >> -----Original Message----- >> From: ope...@li... [mailto:opensip= sta...@li...] On Behalf Of joegen@opensipsta= ck.org >> Sent: Freitag, 23. November 2007 11:28 >> To: ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> Two possible reasons: >> >> 1. You are passing the address of SIPMessage msg to the SIPTransport >> event which will be destroyed as soon as this function loses scope. >> Try >> >> new SIPTransports::SIPTransportEvent( new SIPMessage(msg), >> SIPTransports::SIPTransportEvent::UDPPacketArrival); >> >> instead. SIPTransportEvent deletes this pointer in its destructor. >> >> 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap = to >> store NEWly create Objects. Try putting a "#define new PNEW" in the >> beginning of this file to force you new operator to use the correct >> implementation. >> >> From what I see, the culprit is item 1. >> >> Thomas Raschbacher wrote: >> >> =20 >>> Hi. >>> >>> Please have a look at the following code: >>> >>> class OpenSipStack_StackTest >>> { >>> public: >>> void TransportEventTest(SIPMessage msg); >>> OpenSipStack_StackTest() >>> { >>> m_Stack =3D new SIP::SIPStack(); >>> } >>> private: >>> SIP::SIPStack * m_Stack; >>> } >>> >>> void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIP= Message msg) >>> { >>> SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::= SIPTransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArriva= l); >>> >>> this->m_Stack->OnTransportEvent(evt); >>> //this->OnTransportEvent(evt); // class was derived from SIP:= :SIPStack before.. >>> } >>> >>> This is the program's output (I used a register message from the SIP = rfc): >>> 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED >>> 23:18:32.943 DBG: [CID=3D0x06e0] >>> 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (18= 26) >>> 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... >>> 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... >>> 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE >>> 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: >>> 23:18:32.943 DBG: [CID=3D0x06e0] >>> 23:18:32.953 DBG: [CID=3D0x06e0] >>> 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (N= IST) *** >>> 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:regis= trar.biloxi.c >>> om SIP/2.0 >>> 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@99= 8sdasdh09 >>> 23:18:32.953 DBG: [CID=3D0x06e0] >>> 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED= *** - NIST|8 >>> 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER >>> >>> At that point I get it triggering a breakpoint - heap related >>> HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to Rt= lValidateHeap( 00350000, 0012FC94 ) >>> Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe.= >>> >>> This may be due to a corruption of the heap, and indicates a bug in O= penSipStackTestConsoleApp.exe or any of the DLLs it has loaded. >>> >>> The output window may have more diagnostic information >>> >>> (that is all from the output window..) >>> >>> This seems to happen at the end of the OnTransportEvent method (SIPSt= ack.cxx: 431 ... delete event; ) >>> >>> Any ideas? >>> >>> Thanks >>> >>> -----Original Message----- >>> From: ope...@li... [mailto:opensi= pst...@li...] On Behalf Of joegen@opensipst= ack.org >>> Sent: Freitag, 23. November 2007 10:27 >>> To: ope...@li... >>> Subject: Re: [OpenSIPStack] Server implementation question >>> >>> SIP::SIPStack is probably the best place for you then. You just need= to >>> create your own SIPTransportEvent and feed it to OnTransportEvent() >>> virtual method. I agree that there is not much to work with in term= s >>> of documentation and I assure you that this is not a permanent >>> condition. It is just that all the hands working on the project are= >>> currently busy with actual coding of functionalities. For now, you'= re >>> best bet is to ask questions and we can answer it to the best of our >>> abilities. I also have plans of creating a near C API wrapper for t= he >>> stack to make implementors and integrators life easier. One thing >>> that might be a bit of a road block for you is that OpenSIPStack desi= gn >>> is not modular and that almost all components like the Transport, FSM= >>> and the core are intertwined. Thus, if you need to use third party >>> replace ments, you will need to subclass the right component. >>> >>> >>> Thomas Raschbacher wrote: >>> >>> >>> =20 >>>> Joegen, >>>> >>>> Well the main thing is that the transport layer is partially existin= g already and needs to be implemented in some other part of the applicati= on I think (also we need TCP and TLS too). Problem is that we need to do = the switching and deciding if a call is valid or not,.. ourselves. >>>> Maybe I missed something and this functionality can be achieved othe= rwise (our application does have hardware to connect to analogue/digital = phones as well as does the switching and more or less the 'media server/p= roxy' too. Of course we want to use our switching and the media proxying = - since call recording is a required features.) >>>> >>>> If there is an easier way to achieve this please let me know as it i= s a bit difficult to find those things out as I couldn't find a lot of de= veloper documentation / the code isn't commented very much explaining whi= ch class exactly does what. >>>> >>>> Regards, >>>> P.S.: I'm currently playing around with sending Transport events to = a derived class of SIP::SIPStack and having that process the event to fin= d out exactly what level of processing this class does already ... It wou= ld really help me if there was some sort of documentation like an archite= cture diagram or some short description of which class would be best to u= se if I want some basic replies and timeouts already implemented, as I do= n't know if SIPStack is even the right choice or if I rather should look = at SIPFSM, ... >>>> >>>> >>>> -----Original Message----- >>>> From: ope...@li... [mailto:opens= ips...@li...] On Behalf Of Joegen E. Baclo= r >>>> Sent: Freitag, 23. November 2007 09:39 >>>> To: jo...@op...; ope...@li...= t >>>> Subject: Re: [OpenSIPStack] Server implementation question >>>> >>>> Thomas, >>>> >>>> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you = are >>>> afraid that the modification below will render your proprietary code= >>>> violating the license, do not worry. The only thing covered by the = MPL >>>> is the modification done to OpenSIPStack alone and not your entire >>>> application. Thus, If you indeed deploy your own transport, then th= e >>>> code block below is the only thing you are obliged to make open or >>>> contribute back to OpenSIPStack. Can you share why you want to us= e >>>> another transport though? >>>> >>>> Joegen >>>> >>>> jo...@op... wrote: >>>> >>>> >>>> >>>> =20 >>>>> Hi Thomas, >>>>> >>>>> You need to create your custom transports as descendant of >>>>> SIPTransport. You would then need to override the following Virtu= al >>>>> Method in SIPTransportManager to return an instance fo your custom = transport >>>>> >>>>> SIPTransport * SIPTransportManager::OnCreateTransport( >>>>> const char * userAgentName, >>>>> SIPTransport::Protocol protocol >>>>> ) >>>>> { >>>>> if( protocol =3D=3D SIPTransport::UDP ) >>>>> return new SIPUDPTransport( userAgentName, this ); >>>>> else if( protocol =3D=3D SIPTransport::TCP ) >>>>> return new SIPTCPTransport( userAgentName, this ); >>>>> >>>>> return NULL; >>>>> } >>>>> >>>>> >>>>> Hope that helps. >>>>> >>>>> Joegen >>>>> >>>>> Thomas Raschbacher wrote: >>>>> >>>>> >>>>> >>>>> >>>>> =20 >>>>>> Hi, >>>>>> >>>>>> If I wanted to use a custom transport without changing opensipstac= kcode itself (ie it being in a different library and just sending events = to the stack when it receives / sends/sent messages) how would I best do = that? (Need to use existing transports in non (L)GPL application, but wan= t to use as much of opensipstack as possible - the parser itself is no pr= oblem of course, but I'd like to use a higher 'level' than just that whic= h also implements timers and responses like TRYING, ...) >>>>>> >>>>>> Regards, >>>>>> >>>>>> Mit freundlichen Gr=FC=DFen >>>>>> Thomas Raschbacher >>>>>> ____________________________________________ >>>>>> itCampus Technology GmbH >>>>>> =D6sterreich * Deutschland * Italien >>>>>> Wehlistra=DFe 27b >>>>>> 1200 Wien >>>>>> tho...@it... >>>>>> Tel: +43 (1) 33418557-58 >>>>>> Fax: +43 (1) 33418557-958 >>>>>> http://www.itctec.com >>>>>> UID: ATU 6339 0618 >>>>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>>>> Joint Venture von itCampus und MEC >>>>>> >>>>>> itCampus Gruppe >>>>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz = * Slowakei >>>>>> http://www.itcampus.eu >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------= ------- >>>>>> This SF.net email is sponsored by: Microsoft >>>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>>> _______________________________________________ >>>>>> opensipstack-devel mailing list >>>>>> ope...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> =20 >>>>> -------------------------------------------------------------------= ------ >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> =20 >>>> --------------------------------------------------------------------= ----- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> --------------------------------------------------------------------= ----- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> >>>> =20 >>> ---------------------------------------------------------------------= ---- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> ---------------------------------------------------------------------= ---- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> =20 >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> =20 > > > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > =20 |
From: Thomas R. <tho...@it...> - 2007-11-23 13:16:06
|
Or is it SIP::SIPStack that I need to use for this (I know you mentioned it= before, but I didn't mention all the things we need to do before ;)) Also = preferably we want to leave the timer handling (registration expiration, me= ssage timeout/resend, ..) to the stack.. -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of Thomas Raschbacher Sent: Freitag, 23. November 2007 13:50 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question So.. if I want to use a 'higher' / transactional interface would I be best = off using SIPTransactions or rather SIPFSM::InviteServerTransaction, SIPFSM= ::NonInviteServerTransaction and SIPFSM::InviteClientTransaction, SIPFSM::N= onInviteClientTransaction ? Due to the fact that we want to be able to set nearly all sip headers (and = some of sdp too) from our application we are not sure yet if we are even go= ing to use OpenSBC or just OpenSIPStack directly to minimize the overhead o= f 2 applications communicating with each other. Also we want to be able to = act as a proxy and registrar (just like OpenSBC can do if I understand that= right) but possibly also as a client when connecting to another server. What would be the best way to do this in your opinion? -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of jo...@op... Sent: Freitag, 23. November 2007 12:57 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question Thomas Raschbacher wrote: > Thanks. The 1st one solved my problem. > > So .. if I wanted to use a custom authentication class I assume I'd have = to inherit from B2BAuthInterface right? Also how would I then use that? > Meaning I still want opensipstack to handle the authentification when it = gets a REGISTER (with www-auth,..), but want to get the user-credentials fr= om our system instead of storing them in a list like OpenSBC does.. > You are looking at the right place. For a guy asking for documentations, you're doing quire well. > To clarify I want opensipstack to handle the sip requests, but need it to= call methods in our application to get information about users, wether to = allow a call or not, ... (also want to always route RTP through the applica= tion so that the conversation can be recorded if needed.) > If you want to not let opensbc handle RTP, you may need to override methods in B2BMediaInterface. You may simply comment out the entire code blocks of TranslateSDPOffer and TranslateSDPAnswer and just return TRUE in both places. > /me continues evaluation of opensipstack ;) > > -----Original Message----- > From: ope...@li... [mailto:opensipsta= ck-...@li...] On Behalf Of joegen@opensipstack.or= g > Sent: Freitag, 23. November 2007 11:28 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Two possible reasons: > > 1. You are passing the address of SIPMessage msg to the SIPTransport > event which will be destroyed as soon as this function loses scope. > Try > > new SIPTransports::SIPTransportEvent( new SIPMessage(msg), > SIPTransports::SIPTransportEvent::UDPPacketArrival); > > instead. SIPTransportEvent deletes this pointer in its destructor. > > 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap to > store NEWly create Objects. Try putting a "#define new PNEW" in the > beginning of this file to force you new operator to use the correct > implementation. > > From what I see, the culprit is item 1. > > Thomas Raschbacher wrote: > >> Hi. >> >> Please have a look at the following code: >> >> class OpenSipStack_StackTest >> { >> public: >> void TransportEventTest(SIPMessage msg); >> OpenSipStack_StackTest() >> { >> m_Stack =3D new SIP::SIPStack(); >> } >> private: >> SIP::SIPStack * m_Stack; >> } >> >> void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPMes= sage msg) >> { >> SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::SIP= TransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival); >> >> this->m_Stack->OnTransportEvent(evt); >> //this->OnTransportEvent(evt); // class was derived from SIP::SI= PStack before.. >> } >> >> This is the program's output (I used a register message from the SIP rfc= ): >> 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED >> 23:18:32.943 DBG: [CID=3D0x06e0] >> 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (1826) >> 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... >> 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... >> 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE >> 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: >> 23:18:32.943 DBG: [CID=3D0x06e0] >> 23:18:32.953 DBG: [CID=3D0x06e0] >> 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NIST= ) *** >> 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:registra= r.biloxi.c >> om SIP/2.0 >> 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998sd= asdh09 >> 23:18:32.953 DBG: [CID=3D0x06e0] >> 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED **= * - NIST|8 >> 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER >> >> At that point I get it triggering a breakpoint - heap related >> HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to RtlVa= lidateHeap( 00350000, 0012FC94 ) >> Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. >> >> This may be due to a corruption of the heap, and indicates a bug in Open= SipStackTestConsoleApp.exe or any of the DLLs it has loaded. >> >> The output window may have more diagnostic information >> >> (that is all from the output window..) >> >> This seems to happen at the end of the OnTransportEvent method (SIPStack= .cxx: 431 ... delete event; ) >> >> Any ideas? >> >> Thanks >> >> -----Original Message----- >> From: ope...@li... [mailto:opensipst= ack...@li...] On Behalf Of joegen@opensipstack.o= rg >> Sent: Freitag, 23. November 2007 10:27 >> To: ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> SIP::SIPStack is probably the best place for you then. You just need to >> create your own SIPTransportEvent and feed it to OnTransportEvent() >> virtual method. I agree that there is not much to work with in terms >> of documentation and I assure you that this is not a permanent >> condition. It is just that all the hands working on the project are >> currently busy with actual coding of functionalities. For now, you're >> best bet is to ask questions and we can answer it to the best of our >> abilities. I also have plans of creating a near C API wrapper for the >> stack to make implementors and integrators life easier. One thing >> that might be a bit of a road block for you is that OpenSIPStack design >> is not modular and that almost all components like the Transport, FSM >> and the core are intertwined. Thus, if you need to use third party >> replace ments, you will need to subclass the right component. >> >> >> Thomas Raschbacher wrote: >> >> >>> Joegen, >>> >>> Well the main thing is that the transport layer is partially existing a= lready and needs to be implemented in some other part of the application I = think (also we need TCP and TLS too). Problem is that we need to do the swi= tching and deciding if a call is valid or not,.. ourselves. >>> Maybe I missed something and this functionality can be achieved otherwi= se (our application does have hardware to connect to analogue/digital phone= s as well as does the switching and more or less the 'media server/proxy' t= oo. Of course we want to use our switching and the media proxying - since c= all recording is a required features.) >>> >>> If there is an easier way to achieve this please let me know as it is a= bit difficult to find those things out as I couldn't find a lot of develop= er documentation / the code isn't commented very much explaining which clas= s exactly does what. >>> >>> Regards, >>> P.S.: I'm currently playing around with sending Transport events to a d= erived class of SIP::SIPStack and having that process the event to find out= exactly what level of processing this class does already ... It would real= ly help me if there was some sort of documentation like an architecture dia= gram or some short description of which class would be best to use if I wan= t some basic replies and timeouts already implemented, as I don't know if S= IPStack is even the right choice or if I rather should look at SIPFSM, ... >>> >>> >>> -----Original Message----- >>> From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of Joegen E. Baclor >>> Sent: Freitag, 23. November 2007 09:39 >>> To: jo...@op...; ope...@li... >>> Subject: Re: [OpenSIPStack] Server implementation question >>> >>> Thomas, >>> >>> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you are >>> afraid that the modification below will render your proprietary code >>> violating the license, do not worry. The only thing covered by the MPL >>> is the modification done to OpenSIPStack alone and not your entire >>> application. Thus, If you indeed deploy your own transport, then the >>> code block below is the only thing you are obliged to make open or >>> contribute back to OpenSIPStack. Can you share why you want to use >>> another transport though? >>> >>> Joegen >>> >>> jo...@op... wrote: >>> >>> >>> >>>> Hi Thomas, >>>> >>>> You need to create your custom transports as descendant of >>>> SIPTransport. You would then need to override the following Virtual >>>> Method in SIPTransportManager to return an instance fo your custom tra= nsport >>>> >>>> SIPTransport * SIPTransportManager::OnCreateTransport( >>>> const char * userAgentName, >>>> SIPTransport::Protocol protocol >>>> ) >>>> { >>>> if( protocol =3D=3D SIPTransport::UDP ) >>>> return new SIPUDPTransport( userAgentName, this ); >>>> else if( protocol =3D=3D SIPTransport::TCP ) >>>> return new SIPTCPTransport( userAgentName, this ); >>>> >>>> return NULL; >>>> } >>>> >>>> >>>> Hope that helps. >>>> >>>> Joegen >>>> >>>> Thomas Raschbacher wrote: >>>> >>>> >>>> >>>> >>>>> Hi, >>>>> >>>>> If I wanted to use a custom transport without changing opensipstackco= de itself (ie it being in a different library and just sending events to th= e stack when it receives / sends/sent messages) how would I best do that? (= Need to use existing transports in non (L)GPL application, but want to use = as much of opensipstack as possible - the parser itself is no problem of co= urse, but I'd like to use a higher 'level' than just that which also implem= ents timers and responses like TRYING, ...) >>>>> >>>>> Regards, >>>>> >>>>> Mit freundlichen Gr=FC=DFen >>>>> Thomas Raschbacher >>>>> ____________________________________________ >>>>> itCampus Technology GmbH >>>>> =D6sterreich * Deutschland * Italien >>>>> Wehlistra=DFe 27b >>>>> 1200 Wien >>>>> tho...@it... >>>>> Tel: +43 (1) 33418557-58 >>>>> Fax: +43 (1) 33418557-958 >>>>> http://www.itctec.com >>>>> UID: ATU 6339 0618 >>>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>>> Joint Venture von itCampus und MEC >>>>> >>>>> itCampus Gruppe >>>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * S= lowakei >>>>> http://www.itcampus.eu >>>>> >>>>> >>>>> ---------------------------------------------------------------------= ---- >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> ----------------------------------------------------------------------= --- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel |
From: Thomas R. <tho...@it...> - 2007-11-23 12:49:40
|
So.. if I want to use a 'higher' / transactional interface would I be best = off using SIPTransactions or rather SIPFSM::InviteServerTransaction, SIPFSM= ::NonInviteServerTransaction and SIPFSM::InviteClientTransaction, SIPFSM::N= onInviteClientTransaction ? Due to the fact that we want to be able to set nearly all sip headers (and = some of sdp too) from our application we are not sure yet if we are even go= ing to use OpenSBC or just OpenSIPStack directly to minimize the overhead o= f 2 applications communicating with each other. Also we want to be able to = act as a proxy and registrar (just like OpenSBC can do if I understand that= right) but possibly also as a client when connecting to another server. What would be the best way to do this in your opinion? -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of jo...@op... Sent: Freitag, 23. November 2007 12:57 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question Thomas Raschbacher wrote: > Thanks. The 1st one solved my problem. > > So .. if I wanted to use a custom authentication class I assume I'd have = to inherit from B2BAuthInterface right? Also how would I then use that? > Meaning I still want opensipstack to handle the authentification when it = gets a REGISTER (with www-auth,..), but want to get the user-credentials fr= om our system instead of storing them in a list like OpenSBC does.. > You are looking at the right place. For a guy asking for documentations, you're doing quire well. > To clarify I want opensipstack to handle the sip requests, but need it to= call methods in our application to get information about users, wether to = allow a call or not, ... (also want to always route RTP through the applica= tion so that the conversation can be recorded if needed.) > If you want to not let opensbc handle RTP, you may need to override methods in B2BMediaInterface. You may simply comment out the entire code blocks of TranslateSDPOffer and TranslateSDPAnswer and just return TRUE in both places. > /me continues evaluation of opensipstack ;) > > -----Original Message----- > From: ope...@li... [mailto:opensipsta= ck-...@li...] On Behalf Of joegen@opensipstack.or= g > Sent: Freitag, 23. November 2007 11:28 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Two possible reasons: > > 1. You are passing the address of SIPMessage msg to the SIPTransport > event which will be destroyed as soon as this function loses scope. > Try > > new SIPTransports::SIPTransportEvent( new SIPMessage(msg), > SIPTransports::SIPTransportEvent::UDPPacketArrival); > > instead. SIPTransportEvent deletes this pointer in its destructor. > > 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap to > store NEWly create Objects. Try putting a "#define new PNEW" in the > beginning of this file to force you new operator to use the correct > implementation. > > From what I see, the culprit is item 1. > > Thomas Raschbacher wrote: > >> Hi. >> >> Please have a look at the following code: >> >> class OpenSipStack_StackTest >> { >> public: >> void TransportEventTest(SIPMessage msg); >> OpenSipStack_StackTest() >> { >> m_Stack =3D new SIP::SIPStack(); >> } >> private: >> SIP::SIPStack * m_Stack; >> } >> >> void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPMes= sage msg) >> { >> SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::SIP= TransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival); >> >> this->m_Stack->OnTransportEvent(evt); >> //this->OnTransportEvent(evt); // class was derived from SIP::SI= PStack before.. >> } >> >> This is the program's output (I used a register message from the SIP rfc= ): >> 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED >> 23:18:32.943 DBG: [CID=3D0x06e0] >> 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (1826) >> 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... >> 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... >> 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE >> 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: >> 23:18:32.943 DBG: [CID=3D0x06e0] >> 23:18:32.953 DBG: [CID=3D0x06e0] >> 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NIST= ) *** >> 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:registra= r.biloxi.c >> om SIP/2.0 >> 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998sd= asdh09 >> 23:18:32.953 DBG: [CID=3D0x06e0] >> 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED **= * - NIST|8 >> 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER >> >> At that point I get it triggering a breakpoint - heap related >> HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to RtlVa= lidateHeap( 00350000, 0012FC94 ) >> Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. >> >> This may be due to a corruption of the heap, and indicates a bug in Open= SipStackTestConsoleApp.exe or any of the DLLs it has loaded. >> >> The output window may have more diagnostic information >> >> (that is all from the output window..) >> >> This seems to happen at the end of the OnTransportEvent method (SIPStack= .cxx: 431 ... delete event; ) >> >> Any ideas? >> >> Thanks >> >> -----Original Message----- >> From: ope...@li... [mailto:opensipst= ack...@li...] On Behalf Of joegen@opensipstack.o= rg >> Sent: Freitag, 23. November 2007 10:27 >> To: ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> SIP::SIPStack is probably the best place for you then. You just need to >> create your own SIPTransportEvent and feed it to OnTransportEvent() >> virtual method. I agree that there is not much to work with in terms >> of documentation and I assure you that this is not a permanent >> condition. It is just that all the hands working on the project are >> currently busy with actual coding of functionalities. For now, you're >> best bet is to ask questions and we can answer it to the best of our >> abilities. I also have plans of creating a near C API wrapper for the >> stack to make implementors and integrators life easier. One thing >> that might be a bit of a road block for you is that OpenSIPStack design >> is not modular and that almost all components like the Transport, FSM >> and the core are intertwined. Thus, if you need to use third party >> replace ments, you will need to subclass the right component. >> >> >> Thomas Raschbacher wrote: >> >> >>> Joegen, >>> >>> Well the main thing is that the transport layer is partially existing a= lready and needs to be implemented in some other part of the application I = think (also we need TCP and TLS too). Problem is that we need to do the swi= tching and deciding if a call is valid or not,.. ourselves. >>> Maybe I missed something and this functionality can be achieved otherwi= se (our application does have hardware to connect to analogue/digital phone= s as well as does the switching and more or less the 'media server/proxy' t= oo. Of course we want to use our switching and the media proxying - since c= all recording is a required features.) >>> >>> If there is an easier way to achieve this please let me know as it is a= bit difficult to find those things out as I couldn't find a lot of develop= er documentation / the code isn't commented very much explaining which clas= s exactly does what. >>> >>> Regards, >>> P.S.: I'm currently playing around with sending Transport events to a d= erived class of SIP::SIPStack and having that process the event to find out= exactly what level of processing this class does already ... It would real= ly help me if there was some sort of documentation like an architecture dia= gram or some short description of which class would be best to use if I wan= t some basic replies and timeouts already implemented, as I don't know if S= IPStack is even the right choice or if I rather should look at SIPFSM, ... >>> >>> >>> -----Original Message----- >>> From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of Joegen E. Baclor >>> Sent: Freitag, 23. November 2007 09:39 >>> To: jo...@op...; ope...@li... >>> Subject: Re: [OpenSIPStack] Server implementation question >>> >>> Thomas, >>> >>> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you are >>> afraid that the modification below will render your proprietary code >>> violating the license, do not worry. The only thing covered by the MPL >>> is the modification done to OpenSIPStack alone and not your entire >>> application. Thus, If you indeed deploy your own transport, then the >>> code block below is the only thing you are obliged to make open or >>> contribute back to OpenSIPStack. Can you share why you want to use >>> another transport though? >>> >>> Joegen >>> >>> jo...@op... wrote: >>> >>> >>> >>>> Hi Thomas, >>>> >>>> You need to create your custom transports as descendant of >>>> SIPTransport. You would then need to override the following Virtual >>>> Method in SIPTransportManager to return an instance fo your custom tra= nsport >>>> >>>> SIPTransport * SIPTransportManager::OnCreateTransport( >>>> const char * userAgentName, >>>> SIPTransport::Protocol protocol >>>> ) >>>> { >>>> if( protocol =3D=3D SIPTransport::UDP ) >>>> return new SIPUDPTransport( userAgentName, this ); >>>> else if( protocol =3D=3D SIPTransport::TCP ) >>>> return new SIPTCPTransport( userAgentName, this ); >>>> >>>> return NULL; >>>> } >>>> >>>> >>>> Hope that helps. >>>> >>>> Joegen >>>> >>>> Thomas Raschbacher wrote: >>>> >>>> >>>> >>>> >>>>> Hi, >>>>> >>>>> If I wanted to use a custom transport without changing opensipstackco= de itself (ie it being in a different library and just sending events to th= e stack when it receives / sends/sent messages) how would I best do that? (= Need to use existing transports in non (L)GPL application, but want to use = as much of opensipstack as possible - the parser itself is no problem of co= urse, but I'd like to use a higher 'level' than just that which also implem= ents timers and responses like TRYING, ...) >>>>> >>>>> Regards, >>>>> >>>>> Mit freundlichen Gr=FC=DFen >>>>> Thomas Raschbacher >>>>> ____________________________________________ >>>>> itCampus Technology GmbH >>>>> =D6sterreich * Deutschland * Italien >>>>> Wehlistra=DFe 27b >>>>> 1200 Wien >>>>> tho...@it... >>>>> Tel: +43 (1) 33418557-58 >>>>> Fax: +43 (1) 33418557-958 >>>>> http://www.itctec.com >>>>> UID: ATU 6339 0618 >>>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>>> Joint Venture von itCampus und MEC >>>>> >>>>> itCampus Gruppe >>>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * S= lowakei >>>>> http://www.itcampus.eu >>>>> >>>>> >>>>> ---------------------------------------------------------------------= ---- >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> ----------------------------------------------------------------------= --- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel |
From: <jo...@op...> - 2007-11-23 11:57:15
|
Thomas Raschbacher wrote: > Thanks. The 1st one solved my problem. > > So .. if I wanted to use a custom authentication class I assume I'd hav= e to inherit from B2BAuthInterface right? Also how would I then use that?= > Meaning I still want opensipstack to handle the authentification when i= t gets a REGISTER (with www-auth,..), but want to get the user-credential= s from our system instead of storing them in a list like OpenSBC does..=20 > =20 You are looking at the right place. For a guy asking for=20 documentations, you're doing quire well. > To clarify I want opensipstack to handle the sip requests, but need it = to call methods in our application to get information about users, wether= to allow a call or not, ... (also want to always route RTP through the a= pplication so that the conversation can be recorded if needed.) > =20 If you want to not let opensbc handle RTP, you may need to override=20 methods in B2BMediaInterface. You may simply comment out the entire=20 code blocks of TranslateSDPOffer and TranslateSDPAnswer and just return=20 TRUE in both places. > /me continues evaluation of opensipstack ;) > > -----Original Message----- > From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of joegen@opensipstac= k.org > Sent: Freitag, 23. November 2007 11:28 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Two possible reasons: > > 1. You are passing the address of SIPMessage msg to the SIPTransport > event which will be destroyed as soon as this function loses scope. > Try > > new SIPTransports::SIPTransportEvent( new SIPMessage(msg), > SIPTransports::SIPTransportEvent::UDPPacketArrival); > > instead. SIPTransportEvent deletes this pointer in its destructor. > > 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap t= o > store NEWly create Objects. Try putting a "#define new PNEW" in the > beginning of this file to force you new operator to use the correct > implementation. > > From what I see, the culprit is item 1. > > Thomas Raschbacher wrote: > =20 >> Hi. >> >> Please have a look at the following code: >> >> class OpenSipStack_StackTest >> { >> public: >> void TransportEventTest(SIPMessage msg); >> OpenSipStack_StackTest() >> { >> m_Stack =3D new SIP::SIPStack(); >> } >> private: >> SIP::SIPStack * m_Stack; >> } >> >> void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPM= essage msg) >> { >> SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::S= IPTransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival= ); >> >> this->m_Stack->OnTransportEvent(evt); >> //this->OnTransportEvent(evt); // class was derived from SIP::= SIPStack before.. >> } >> >> This is the program's output (I used a register message from the SIP r= fc): >> 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED >> 23:18:32.943 DBG: [CID=3D0x06e0] >> 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (182= 6) >> 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... >> 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... >> 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE >> 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: >> 23:18:32.943 DBG: [CID=3D0x06e0] >> 23:18:32.953 DBG: [CID=3D0x06e0] >> 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NI= ST) *** >> 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:regist= rar.biloxi.c >> om SIP/2.0 >> 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998= sdasdh09 >> 23:18:32.953 DBG: [CID=3D0x06e0] >> 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED = *** - NIST|8 >> 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER >> >> At that point I get it triggering a breakpoint - heap related >> HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to Rtl= ValidateHeap( 00350000, 0012FC94 ) >> Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. >> >> This may be due to a corruption of the heap, and indicates a bug in Op= enSipStackTestConsoleApp.exe or any of the DLLs it has loaded. >> >> The output window may have more diagnostic information >> >> (that is all from the output window..) >> >> This seems to happen at the end of the OnTransportEvent method (SIPSta= ck.cxx: 431 ... delete event; ) >> >> Any ideas? >> >> Thanks >> >> -----Original Message----- >> From: ope...@li... [mailto:opensip= sta...@li...] On Behalf Of joegen@opensipsta= ck.org >> Sent: Freitag, 23. November 2007 10:27 >> To: ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> SIP::SIPStack is probably the best place for you then. You just need = to >> create your own SIPTransportEvent and feed it to OnTransportEvent() >> virtual method. I agree that there is not much to work with in terms= >> of documentation and I assure you that this is not a permanent >> condition. It is just that all the hands working on the project are >> currently busy with actual coding of functionalities. For now, you'r= e >> best bet is to ask questions and we can answer it to the best of our >> abilities. I also have plans of creating a near C API wrapper for th= e >> stack to make implementors and integrators life easier. One thing >> that might be a bit of a road block for you is that OpenSIPStack desig= n >> is not modular and that almost all components like the Transport, FSM >> and the core are intertwined. Thus, if you need to use third party >> replace ments, you will need to subclass the right component. >> >> >> Thomas Raschbacher wrote: >> >> =20 >>> Joegen, >>> >>> Well the main thing is that the transport layer is partially existing= already and needs to be implemented in some other part of the applicatio= n I think (also we need TCP and TLS too). Problem is that we need to do t= he switching and deciding if a call is valid or not,.. ourselves. >>> Maybe I missed something and this functionality can be achieved other= wise (our application does have hardware to connect to analogue/digital p= hones as well as does the switching and more or less the 'media server/pr= oxy' too. Of course we want to use our switching and the media proxying -= since call recording is a required features.) >>> >>> If there is an easier way to achieve this please let me know as it is= a bit difficult to find those things out as I couldn't find a lot of dev= eloper documentation / the code isn't commented very much explaining whic= h class exactly does what. >>> >>> Regards, >>> P.S.: I'm currently playing around with sending Transport events to a= derived class of SIP::SIPStack and having that process the event to find= out exactly what level of processing this class does already ... It woul= d really help me if there was some sort of documentation like an architec= ture diagram or some short description of which class would be best to us= e if I want some basic replies and timeouts already implemented, as I don= 't know if SIPStack is even the right choice or if I rather should look a= t SIPFSM, ... >>> >>> >>> -----Original Message----- >>> From: ope...@li... [mailto:opensi= pst...@li...] On Behalf Of Joegen E. Baclor= >>> Sent: Freitag, 23. November 2007 09:39 >>> To: jo...@op...; ope...@li...= >>> Subject: Re: [OpenSIPStack] Server implementation question >>> >>> Thomas, >>> >>> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you a= re >>> afraid that the modification below will render your proprietary code >>> violating the license, do not worry. The only thing covered by the M= PL >>> is the modification done to OpenSIPStack alone and not your entire >>> application. Thus, If you indeed deploy your own transport, then the= >>> code block below is the only thing you are obliged to make open or >>> contribute back to OpenSIPStack. Can you share why you want to use= >>> another transport though? >>> >>> Joegen >>> >>> jo...@op... wrote: >>> >>> >>> =20 >>>> Hi Thomas, >>>> >>>> You need to create your custom transports as descendant of >>>> SIPTransport. You would then need to override the following Virtua= l >>>> Method in SIPTransportManager to return an instance fo your custom t= ransport >>>> >>>> SIPTransport * SIPTransportManager::OnCreateTransport( >>>> const char * userAgentName, >>>> SIPTransport::Protocol protocol >>>> ) >>>> { >>>> if( protocol =3D=3D SIPTransport::UDP ) >>>> return new SIPUDPTransport( userAgentName, this ); >>>> else if( protocol =3D=3D SIPTransport::TCP ) >>>> return new SIPTCPTransport( userAgentName, this ); >>>> >>>> return NULL; >>>> } >>>> >>>> >>>> Hope that helps. >>>> >>>> Joegen >>>> >>>> Thomas Raschbacher wrote: >>>> >>>> >>>> >>>> =20 >>>>> Hi, >>>>> >>>>> If I wanted to use a custom transport without changing opensipstack= code itself (ie it being in a different library and just sending events t= o the stack when it receives / sends/sent messages) how would I best do t= hat? (Need to use existing transports in non (L)GPL application, but want= to use as much of opensipstack as possible - the parser itself is no pro= blem of course, but I'd like to use a higher 'level' than just that which= also implements timers and responses like TRYING, ...) >>>>> >>>>> Regards, >>>>> >>>>> Mit freundlichen Gr=FC=DFen >>>>> Thomas Raschbacher >>>>> ____________________________________________ >>>>> itCampus Technology GmbH >>>>> =D6sterreich * Deutschland * Italien >>>>> Wehlistra=DFe 27b >>>>> 1200 Wien >>>>> tho...@it... >>>>> Tel: +43 (1) 33418557-58 >>>>> Fax: +43 (1) 33418557-958 >>>>> http://www.itctec.com >>>>> UID: ATU 6339 0618 >>>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>>> Joint Venture von itCampus und MEC >>>>> >>>>> itCampus Gruppe >>>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz *= Slowakei >>>>> http://www.itcampus.eu >>>>> >>>>> >>>>> -------------------------------------------------------------------= ------ >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> _______________________________________________ >>>>> opensipstack-devel mailing list >>>>> ope...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> =20 >>>> --------------------------------------------------------------------= ----- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> =20 >>> ---------------------------------------------------------------------= ---- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> ---------------------------------------------------------------------= ---- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> =20 >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> =20 > > > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > =20 |
From: Thomas R. <tho...@it...> - 2007-11-23 11:14:30
|
Thanks. The 1st one solved my problem. So .. if I wanted to use a custom authentication class I assume I'd have to= inherit from B2BAuthInterface right? Also how would I then use that? Meaning I still want opensipstack to handle the authentification when it ge= ts a REGISTER (with www-auth,..), but want to get the user-credentials from= our system instead of storing them in a list like OpenSBC does. To clarify I want opensipstack to handle the sip requests, but need it to c= all methods in our application to get information about users, wether to al= low a call or not, ... (also want to always route RTP through the applicati= on so that the conversation can be recorded if needed.) /me continues evaluation of opensipstack ;) -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of jo...@op... Sent: Freitag, 23. November 2007 11:28 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question Two possible reasons: 1. You are passing the address of SIPMessage msg to the SIPTransport event which will be destroyed as soon as this function loses scope. Try new SIPTransports::SIPTransportEvent( new SIPMessage(msg), SIPTransports::SIPTransportEvent::UDPPacketArrival); instead. SIPTransportEvent deletes this pointer in its destructor. 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap to store NEWly create Objects. Try putting a "#define new PNEW" in the beginning of this file to force you new operator to use the correct implementation. From what I see, the culprit is item 1. Thomas Raschbacher wrote: > Hi. > > Please have a look at the following code: > > class OpenSipStack_StackTest > { > public: > void TransportEventTest(SIPMessage msg); > OpenSipStack_StackTest() > { > m_Stack =3D new SIP::SIPStack(); > } > private: > SIP::SIPStack * m_Stack; > } > > void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPMess= age msg) > { > SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::SIPT= ransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival); > > this->m_Stack->OnTransportEvent(evt); > //this->OnTransportEvent(evt); // class was derived from SIP::SIP= Stack before.. > } > > This is the program's output (I used a register message from the SIP rfc)= : > 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED > 23:18:32.943 DBG: [CID=3D0x06e0] > 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (1826) > 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... > 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... > 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE > 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: > 23:18:32.943 DBG: [CID=3D0x06e0] > 23:18:32.953 DBG: [CID=3D0x06e0] > 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NIST)= *** > 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:registrar= .biloxi.c > om SIP/2.0 > 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998sda= sdh09 > 23:18:32.953 DBG: [CID=3D0x06e0] > 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED ***= - NIST|8 > 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER > > At that point I get it triggering a breakpoint - heap related > HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to RtlVal= idateHeap( 00350000, 0012FC94 ) > Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. > > This may be due to a corruption of the heap, and indicates a bug in OpenS= ipStackTestConsoleApp.exe or any of the DLLs it has loaded. > > The output window may have more diagnostic information > > (that is all from the output window..) > > This seems to happen at the end of the OnTransportEvent method (SIPStack.= cxx: 431 ... delete event; ) > > Any ideas? > > Thanks > > -----Original Message----- > From: ope...@li... [mailto:opensipsta= ck-...@li...] On Behalf Of joegen@opensipstack.or= g > Sent: Freitag, 23. November 2007 10:27 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > SIP::SIPStack is probably the best place for you then. You just need to > create your own SIPTransportEvent and feed it to OnTransportEvent() > virtual method. I agree that there is not much to work with in terms > of documentation and I assure you that this is not a permanent > condition. It is just that all the hands working on the project are > currently busy with actual coding of functionalities. For now, you're > best bet is to ask questions and we can answer it to the best of our > abilities. I also have plans of creating a near C API wrapper for the > stack to make implementors and integrators life easier. One thing > that might be a bit of a road block for you is that OpenSIPStack design > is not modular and that almost all components like the Transport, FSM > and the core are intertwined. Thus, if you need to use third party > replace ments, you will need to subclass the right component. > > > Thomas Raschbacher wrote: > >> Joegen, >> >> Well the main thing is that the transport layer is partially existing al= ready and needs to be implemented in some other part of the application I t= hink (also we need TCP and TLS too). Problem is that we need to do the swit= ching and deciding if a call is valid or not,.. ourselves. >> Maybe I missed something and this functionality can be achieved otherwis= e (our application does have hardware to connect to analogue/digital phones= as well as does the switching and more or less the 'media server/proxy' to= o. Of course we want to use our switching and the media proxying - since ca= ll recording is a required features.) >> >> If there is an easier way to achieve this please let me know as it is a = bit difficult to find those things out as I couldn't find a lot of develope= r documentation / the code isn't commented very much explaining which class= exactly does what. >> >> Regards, >> P.S.: I'm currently playing around with sending Transport events to a de= rived class of SIP::SIPStack and having that process the event to find out = exactly what level of processing this class does already ... It would reall= y help me if there was some sort of documentation like an architecture diag= ram or some short description of which class would be best to use if I want= some basic replies and timeouts already implemented, as I don't know if SI= PStack is even the right choice or if I rather should look at SIPFSM, ... >> >> >> -----Original Message----- >> From: ope...@li... [mailto:opensipst= ack...@li...] On Behalf Of Joegen E. Baclor >> Sent: Freitag, 23. November 2007 09:39 >> To: jo...@op...; ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> Thomas, >> >> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you are >> afraid that the modification below will render your proprietary code >> violating the license, do not worry. The only thing covered by the MPL >> is the modification done to OpenSIPStack alone and not your entire >> application. Thus, If you indeed deploy your own transport, then the >> code block below is the only thing you are obliged to make open or >> contribute back to OpenSIPStack. Can you share why you want to use >> another transport though? >> >> Joegen >> >> jo...@op... wrote: >> >> >>> Hi Thomas, >>> >>> You need to create your custom transports as descendant of >>> SIPTransport. You would then need to override the following Virtual >>> Method in SIPTransportManager to return an instance fo your custom tran= sport >>> >>> SIPTransport * SIPTransportManager::OnCreateTransport( >>> const char * userAgentName, >>> SIPTransport::Protocol protocol >>> ) >>> { >>> if( protocol =3D=3D SIPTransport::UDP ) >>> return new SIPUDPTransport( userAgentName, this ); >>> else if( protocol =3D=3D SIPTransport::TCP ) >>> return new SIPTCPTransport( userAgentName, this ); >>> >>> return NULL; >>> } >>> >>> >>> Hope that helps. >>> >>> Joegen >>> >>> Thomas Raschbacher wrote: >>> >>> >>> >>>> Hi, >>>> >>>> If I wanted to use a custom transport without changing opensipstackcod= e itself (ie it being in a different library and just sending events to the= stack when it receives / sends/sent messages) how would I best do that? (N= eed to use existing transports in non (L)GPL application, but want to use a= s much of opensipstack as possible - the parser itself is no problem of cou= rse, but I'd like to use a higher 'level' than just that which also impleme= nts timers and responses like TRYING, ...) >>>> >>>> Regards, >>>> >>>> Mit freundlichen Gr=FC=DFen >>>> Thomas Raschbacher >>>> ____________________________________________ >>>> itCampus Technology GmbH >>>> =D6sterreich * Deutschland * Italien >>>> Wehlistra=DFe 27b >>>> 1200 Wien >>>> tho...@it... >>>> Tel: +43 (1) 33418557-58 >>>> Fax: +43 (1) 33418557-958 >>>> http://www.itctec.com >>>> UID: ATU 6339 0618 >>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>> Joint Venture von itCampus und MEC >>>> >>>> itCampus Gruppe >>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Sl= owakei >>>> http://www.itcampus.eu >>>> >>>> >>>> ----------------------------------------------------------------------= --- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel |
From: <jo...@op...> - 2007-11-23 10:28:06
|
Two possible reasons: 1. You are passing the address of SIPMessage msg to the SIPTransport=20 event which will be destroyed as soon as this function loses scope.=20 Try new SIPTransports::SIPTransportEvent( new SIPMessage(msg),=20 SIPTransports::SIPTransportEvent::UDPPacketArrival); instead. SIPTransportEvent deletes this pointer in its destructor. 2. If this is a debug build, OpenSIPStack might be using PMemoryHeap to = store NEWly create Objects. Try putting a "#define new PNEW" in the=20 beginning of this file to force you new operator to use the correct=20 implementation. From what I see, the culprit is item 1. Thomas Raschbacher wrote: > Hi. > > Please have a look at the following code: > > class OpenSipStack_StackTest > { > public: > void TransportEventTest(SIPMessage msg); > OpenSipStack_StackTest() > { > m_Stack =3D new SIP::SIPStack(); > } > private: > SIP::SIPStack * m_Stack; > } > > void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPMe= ssage msg) > { > SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::SI= PTransportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival)= ; > > this->m_Stack->OnTransportEvent(evt); > //this->OnTransportEvent(evt); // class was derived from SIP::S= IPStack before.. > } > > This is the program's output (I used a register message from the SIP rf= c): > 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED > 23:18:32.943 DBG: [CID=3D0x06e0] > 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (1826= ) > 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... > 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... > 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE > 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: > 23:18:32.943 DBG: [CID=3D0x06e0] > 23:18:32.953 DBG: [CID=3D0x06e0] > 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NIS= T) *** > 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:registr= ar.biloxi.c > om SIP/2.0 > 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998s= dasdh09 > 23:18:32.953 DBG: [CID=3D0x06e0] > 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED *= ** - NIST|8 > 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER > > At that point I get it triggering a breakpoint - heap related > HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to RtlV= alidateHeap( 00350000, 0012FC94 ) > Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. > > This may be due to a corruption of the heap, and indicates a bug in Ope= nSipStackTestConsoleApp.exe or any of the DLLs it has loaded. > > The output window may have more diagnostic information > > (that is all from the output window..) > > This seems to happen at the end of the OnTransportEvent method (SIPStac= k.cxx: 431 ... delete event; ) > > Any ideas? > > Thanks > > -----Original Message----- > From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of joegen@opensipstac= k.org > Sent: Freitag, 23. November 2007 10:27 > To: ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > SIP::SIPStack is probably the best place for you then. You just need t= o > create your own SIPTransportEvent and feed it to OnTransportEvent() > virtual method. I agree that there is not much to work with in terms > of documentation and I assure you that this is not a permanent > condition. It is just that all the hands working on the project are > currently busy with actual coding of functionalities. For now, you're= > best bet is to ask questions and we can answer it to the best of our > abilities. I also have plans of creating a near C API wrapper for the= > stack to make implementors and integrators life easier. One thing > that might be a bit of a road block for you is that OpenSIPStack design= > is not modular and that almost all components like the Transport, FSM > and the core are intertwined. Thus, if you need to use third party > replace ments, you will need to subclass the right component. > > > Thomas Raschbacher wrote: > =20 >> Joegen, >> >> Well the main thing is that the transport layer is partially existing = already and needs to be implemented in some other part of the application= I think (also we need TCP and TLS too). Problem is that we need to do th= e switching and deciding if a call is valid or not,.. ourselves. >> Maybe I missed something and this functionality can be achieved otherw= ise (our application does have hardware to connect to analogue/digital ph= ones as well as does the switching and more or less the 'media server/pro= xy' too. Of course we want to use our switching and the media proxying - = since call recording is a required features.) >> >> If there is an easier way to achieve this please let me know as it is = a bit difficult to find those things out as I couldn't find a lot of deve= loper documentation / the code isn't commented very much explaining which= class exactly does what. >> >> Regards, >> P.S.: I'm currently playing around with sending Transport events to a = derived class of SIP::SIPStack and having that process the event to find = out exactly what level of processing this class does already ... It would= really help me if there was some sort of documentation like an architect= ure diagram or some short description of which class would be best to use= if I want some basic replies and timeouts already implemented, as I don'= t know if SIPStack is even the right choice or if I rather should look at= SIPFSM, ... >> >> >> -----Original Message----- >> From: ope...@li... [mailto:opensip= sta...@li...] On Behalf Of Joegen E. Baclor >> Sent: Freitag, 23. November 2007 09:39 >> To: jo...@op...; ope...@li... >> Subject: Re: [OpenSIPStack] Server implementation question >> >> Thomas, >> >> BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you ar= e >> afraid that the modification below will render your proprietary code >> violating the license, do not worry. The only thing covered by the MP= L >> is the modification done to OpenSIPStack alone and not your entire >> application. Thus, If you indeed deploy your own transport, then the >> code block below is the only thing you are obliged to make open or >> contribute back to OpenSIPStack. Can you share why you want to use >> another transport though? >> >> Joegen >> >> jo...@op... wrote: >> >> =20 >>> Hi Thomas, >>> >>> You need to create your custom transports as descendant of >>> SIPTransport. You would then need to override the following Virtual= >>> Method in SIPTransportManager to return an instance fo your custom tr= ansport >>> >>> SIPTransport * SIPTransportManager::OnCreateTransport( >>> const char * userAgentName, >>> SIPTransport::Protocol protocol >>> ) >>> { >>> if( protocol =3D=3D SIPTransport::UDP ) >>> return new SIPUDPTransport( userAgentName, this ); >>> else if( protocol =3D=3D SIPTransport::TCP ) >>> return new SIPTCPTransport( userAgentName, this ); >>> >>> return NULL; >>> } >>> >>> >>> Hope that helps. >>> >>> Joegen >>> >>> Thomas Raschbacher wrote: >>> >>> >>> =20 >>>> Hi, >>>> >>>> If I wanted to use a custom transport without changing opensipstackc= ode itself (ie it being in a different library and just sending events to= the stack when it receives / sends/sent messages) how would I best do th= at? (Need to use existing transports in non (L)GPL application, but want = to use as much of opensipstack as possible - the parser itself is no prob= lem of course, but I'd like to use a higher 'level' than just that which = also implements timers and responses like TRYING, ...) >>>> >>>> Regards, >>>> >>>> Mit freundlichen Gr=FC=DFen >>>> Thomas Raschbacher >>>> ____________________________________________ >>>> itCampus Technology GmbH >>>> =D6sterreich * Deutschland * Italien >>>> Wehlistra=DFe 27b >>>> 1200 Wien >>>> tho...@it... >>>> Tel: +43 (1) 33418557-58 >>>> Fax: +43 (1) 33418557-958 >>>> http://www.itctec.com >>>> UID: ATU 6339 0618 >>>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>>> Joint Venture von itCampus und MEC >>>> >>>> itCampus Gruppe >>>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * = Slowakei >>>> http://www.itcampus.eu >>>> >>>> >>>> --------------------------------------------------------------------= ----- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> opensipstack-devel mailing list >>>> ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>>> >>>> >>>> >>>> >>>> >>>> >>>> =20 >>> ---------------------------------------------------------------------= ---- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> =20 >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> =20 > > > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > =20 |
From: Thomas R. <tho...@it...> - 2007-11-23 09:40:31
|
Hi. Please have a look at the following code: class OpenSipStack_StackTest { public: void TransportEventTest(SIPMessage msg); OpenSipStack_StackTest() { m_Stack =3D new SIP::SIPStack(); } private: SIP::SIPStack * m_Stack; } void OpenSipStackTest::OpenSipStack_StackTest::TransportEventTest(SIPMessag= e msg) { SIPTransports::SIPTransportEvent *evt =3D new SIPTransports::SIPTra= nsportEvent(&msg, SIPTransports::SIPTransportEvent::UDPPacketArrival); this->m_Stack->OnTransportEvent(evt); //this->OnTransportEvent(evt); // class was derived from SIP::SIPSt= ack before.. } This is the program's output (I used a register message from the SIP rfc): 23:18:32.858 INF: [CID=3D0x0000] SIP Stack CREATED 23:18:32.943 DBG: [CID=3D0x06e0] 23:18:32.943 DBG: [CID=3D0x06e0] RECEIVE: REQ: REGISTER (1826) 23:18:32.943 DBG: [CID=3D0x06e0] FROM: sip:bo...@bi... 23:18:32.943 DBG: [CID=3D0x06e0] TO: sip:bo...@bi... 23:18:32.943 DBG: [CID=3D0x06e0] XOR: FALSE 23:18:32.943 DBG: [CID=3D0x06e0] SRC: PORT: 23:18:32.943 DBG: [CID=3D0x06e0] 23:18:32.953 DBG: [CID=3D0x06e0] 23:18:32.953 DBG: [CID=3D0x06e0] *** CREATING TRANSACTION (NIST) *= ** 23:18:32.953 DBG: [CID=3D0x06e0] Message: REGISTER sip:registrar.b= iloxi.c om SIP/2.0 23:18:32.953 DBG: [CID=3D0x06e0] Call-Id: 843817637684230@998sdasd= h09 23:18:32.953 DBG: [CID=3D0x06e0] 23:18:32.962 DTL: [CID=3D0x06e0] NIST(83912963) *** CREATED *** -= NIST|8 43817637684230@998sdasdh09|z9hG4bKnashds7|REGISTER At that point I get it triggering a breakpoint - heap related HEAP[OpenSipStackTestConsoleApp.exe]: Invalid Address specified to RtlValid= ateHeap( 00350000, 0012FC94 ) Windows has triggered a breakpoint in OpenSipStackTestConsoleApp.exe. This may be due to a corruption of the heap, and indicates a bug in OpenSip= StackTestConsoleApp.exe or any of the DLLs it has loaded. The output window may have more diagnostic information (that is all from the output window..) This seems to happen at the end of the OnTransportEvent method (SIPStack.cx= x: 431 ... delete event; ) Any ideas? Thanks -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of jo...@op... Sent: Freitag, 23. November 2007 10:27 To: ope...@li... Subject: Re: [OpenSIPStack] Server implementation question SIP::SIPStack is probably the best place for you then. You just need to create your own SIPTransportEvent and feed it to OnTransportEvent() virtual method. I agree that there is not much to work with in terms of documentation and I assure you that this is not a permanent condition. It is just that all the hands working on the project are currently busy with actual coding of functionalities. For now, you're best bet is to ask questions and we can answer it to the best of our abilities. I also have plans of creating a near C API wrapper for the stack to make implementors and integrators life easier. One thing that might be a bit of a road block for you is that OpenSIPStack design is not modular and that almost all components like the Transport, FSM and the core are intertwined. Thus, if you need to use third party replace ments, you will need to subclass the right component. Thomas Raschbacher wrote: > Joegen, > > Well the main thing is that the transport layer is partially existing alr= eady and needs to be implemented in some other part of the application I th= ink (also we need TCP and TLS too). Problem is that we need to do the switc= hing and deciding if a call is valid or not,.. ourselves. > Maybe I missed something and this functionality can be achieved otherwise= (our application does have hardware to connect to analogue/digital phones = as well as does the switching and more or less the 'media server/proxy' too= . Of course we want to use our switching and the media proxying - since cal= l recording is a required features.) > > If there is an easier way to achieve this please let me know as it is a b= it difficult to find those things out as I couldn't find a lot of developer= documentation / the code isn't commented very much explaining which class = exactly does what. > > Regards, > P.S.: I'm currently playing around with sending Transport events to a der= ived class of SIP::SIPStack and having that process the event to find out e= xactly what level of processing this class does already ... It would really= help me if there was some sort of documentation like an architecture diagr= am or some short description of which class would be best to use if I want = some basic replies and timeouts already implemented, as I don't know if SIP= Stack is even the right choice or if I rather should look at SIPFSM, ... > > > -----Original Message----- > From: ope...@li... [mailto:opensipsta= ck-...@li...] On Behalf Of Joegen E. Baclor > Sent: Freitag, 23. November 2007 09:39 > To: jo...@op...; ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Thomas, > > BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you are > afraid that the modification below will render your proprietary code > violating the license, do not worry. The only thing covered by the MPL > is the modification done to OpenSIPStack alone and not your entire > application. Thus, If you indeed deploy your own transport, then the > code block below is the only thing you are obliged to make open or > contribute back to OpenSIPStack. Can you share why you want to use > another transport though? > > Joegen > > jo...@op... wrote: > >> Hi Thomas, >> >> You need to create your custom transports as descendant of >> SIPTransport. You would then need to override the following Virtual >> Method in SIPTransportManager to return an instance fo your custom trans= port >> >> SIPTransport * SIPTransportManager::OnCreateTransport( >> const char * userAgentName, >> SIPTransport::Protocol protocol >> ) >> { >> if( protocol =3D=3D SIPTransport::UDP ) >> return new SIPUDPTransport( userAgentName, this ); >> else if( protocol =3D=3D SIPTransport::TCP ) >> return new SIPTCPTransport( userAgentName, this ); >> >> return NULL; >> } >> >> >> Hope that helps. >> >> Joegen >> >> Thomas Raschbacher wrote: >> >> >>> Hi, >>> >>> If I wanted to use a custom transport without changing opensipstackcode= itself (ie it being in a different library and just sending events to the = stack when it receives / sends/sent messages) how would I best do that? (Ne= ed to use existing transports in non (L)GPL application, but want to use as= much of opensipstack as possible - the parser itself is no problem of cour= se, but I'd like to use a higher 'level' than just that which also implemen= ts timers and responses like TRYING, ...) >>> >>> Regards, >>> >>> Mit freundlichen Gr=FC=DFen >>> Thomas Raschbacher >>> ____________________________________________ >>> itCampus Technology GmbH >>> =D6sterreich * Deutschland * Italien >>> Wehlistra=DFe 27b >>> 1200 Wien >>> tho...@it... >>> Tel: +43 (1) 33418557-58 >>> Fax: +43 (1) 33418557-958 >>> http://www.itctec.com >>> UID: ATU 6339 0618 >>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>> Joint Venture von itCampus und MEC >>> >>> itCampus Gruppe >>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Slo= wakei >>> http://www.itcampus.eu >>> >>> >>> -----------------------------------------------------------------------= -- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel |
From: <jo...@op...> - 2007-11-23 09:27:16
|
SIP::SIPStack is probably the best place for you then. You just need to = create your own SIPTransportEvent and feed it to OnTransportEvent()=20 virtual method. I agree that there is not much to work with in terms=20 of documentation and I assure you that this is not a permanent=20 condition. It is just that all the hands working on the project are=20 currently busy with actual coding of functionalities. For now, you're=20 best bet is to ask questions and we can answer it to the best of our=20 abilities. I also have plans of creating a near C API wrapper for the=20 stack to make implementors and integrators life easier. One thing=20 that might be a bit of a road block for you is that OpenSIPStack design=20 is not modular and that almost all components like the Transport, FSM=20 and the core are intertwined. Thus, if you need to use third party=20 replace ments, you will need to subclass the right component. Thomas Raschbacher wrote: > Joegen, > > Well the main thing is that the transport layer is partially existing a= lready and needs to be implemented in some other part of the application = I think (also we need TCP and TLS too). Problem is that we need to do the= switching and deciding if a call is valid or not,.. ourselves. > Maybe I missed something and this functionality can be achieved otherwi= se (our application does have hardware to connect to analogue/digital pho= nes as well as does the switching and more or less the 'media server/prox= y' too. Of course we want to use our switching and the media proxying - s= ince call recording is a required features.) > > If there is an easier way to achieve this please let me know as it is a= bit difficult to find those things out as I couldn't find a lot of devel= oper documentation / the code isn't commented very much explaining which = class exactly does what. > > Regards, > P.S.: I'm currently playing around with sending Transport events to a d= erived class of SIP::SIPStack and having that process the event to find o= ut exactly what level of processing this class does already ... It would = really help me if there was some sort of documentation like an architectu= re diagram or some short description of which class would be best to use = if I want some basic replies and timeouts already implemented, as I don't= know if SIPStack is even the right choice or if I rather should look at = SIPFSM, ... > > > -----Original Message----- > From: ope...@li... [mailto:opensips= tac...@li...] On Behalf Of Joegen E. Baclor > Sent: Freitag, 23. November 2007 09:39 > To: jo...@op...; ope...@li... > Subject: Re: [OpenSIPStack] Server implementation question > > Thomas, > > BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you are= > afraid that the modification below will render your proprietary code > violating the license, do not worry. The only thing covered by the MPL= > is the modification done to OpenSIPStack alone and not your entire > application. Thus, If you indeed deploy your own transport, then the > code block below is the only thing you are obliged to make open or > contribute back to OpenSIPStack. Can you share why you want to use > another transport though? > > Joegen > > jo...@op... wrote: > =20 >> Hi Thomas, >> >> You need to create your custom transports as descendant of >> SIPTransport. You would then need to override the following Virtual >> Method in SIPTransportManager to return an instance fo your custom tra= nsport >> >> SIPTransport * SIPTransportManager::OnCreateTransport( >> const char * userAgentName, >> SIPTransport::Protocol protocol >> ) >> { >> if( protocol =3D=3D SIPTransport::UDP ) >> return new SIPUDPTransport( userAgentName, this ); >> else if( protocol =3D=3D SIPTransport::TCP ) >> return new SIPTCPTransport( userAgentName, this ); >> >> return NULL; >> } >> >> >> Hope that helps. >> >> Joegen >> >> Thomas Raschbacher wrote: >> >> =20 >>> Hi, >>> >>> If I wanted to use a custom transport without changing opensipstackco= de itself (ie it being in a different library and just sending events to = the stack when it receives / sends/sent messages) how would I best do tha= t? (Need to use existing transports in non (L)GPL application, but want t= o use as much of opensipstack as possible - the parser itself is no probl= em of course, but I'd like to use a higher 'level' than just that which a= lso implements timers and responses like TRYING, ...) >>> >>> Regards, >>> >>> Mit freundlichen Gr=FC=DFen >>> Thomas Raschbacher >>> ____________________________________________ >>> itCampus Technology GmbH >>> =D6sterreich * Deutschland * Italien >>> Wehlistra=DFe 27b >>> 1200 Wien >>> tho...@it... >>> Tel: +43 (1) 33418557-58 >>> Fax: +43 (1) 33418557-958 >>> http://www.itctec.com >>> UID: ATU 6339 0618 >>> Firmenbuchnr: FN292598t, Handelsgericht Wien >>> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >>> Joint Venture von itCampus und MEC >>> >>> itCampus Gruppe >>> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * S= lowakei >>> http://www.itcampus.eu >>> >>> >>> ---------------------------------------------------------------------= ---- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> opensipstack-devel mailing list >>> ope...@li... >>> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >>> >>> >>> >>> >>> >>> =20 >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> =20 > > > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > =20 |
From: Thomas R. <tho...@it...> - 2007-11-23 09:00:35
|
Joegen, Well the main thing is that the transport layer is partially existing alrea= dy and needs to be implemented in some other part of the application I thin= k (also we need TCP and TLS too). Problem is that we need to do the switchi= ng and deciding if a call is valid or not,.. ourselves. Maybe I missed something and this functionality can be achieved otherwise (= our application does have hardware to connect to analogue/digital phones as= well as does the switching and more or less the 'media server/proxy' too. = Of course we want to use our switching and the media proxying - since call = recording is a required features.) If there is an easier way to achieve this please let me know as it is a bit= difficult to find those things out as I couldn't find a lot of developer d= ocumentation / the code isn't commented very much explaining which class ex= actly does what. Regards, P.S.: I'm currently playing around with sending Transport events to a deriv= ed class of SIP::SIPStack and having that process the event to find out exa= ctly what level of processing this class does already ... It would really h= elp me if there was some sort of documentation like an architecture diagram= or some short description of which class would be best to use if I want so= me basic replies and timeouts already implemented, as I don't know if SIPSt= ack is even the right choice or if I rather should look at SIPFSM, ... -----Original Message----- From: ope...@li... [mailto:opensipstack= -de...@li...] On Behalf Of Joegen E. Baclor Sent: Freitag, 23. November 2007 09:39 To: jo...@op...; ope...@li... Subject: Re: [OpenSIPStack] Server implementation question Thomas, BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you are afraid that the modification below will render your proprietary code violating the license, do not worry. The only thing covered by the MPL is the modification done to OpenSIPStack alone and not your entire application. Thus, If you indeed deploy your own transport, then the code block below is the only thing you are obliged to make open or contribute back to OpenSIPStack. Can you share why you want to use another transport though? Joegen jo...@op... wrote: > Hi Thomas, > > You need to create your custom transports as descendant of > SIPTransport. You would then need to override the following Virtual > Method in SIPTransportManager to return an instance fo your custom transp= ort > > SIPTransport * SIPTransportManager::OnCreateTransport( > const char * userAgentName, > SIPTransport::Protocol protocol > ) > { > if( protocol =3D=3D SIPTransport::UDP ) > return new SIPUDPTransport( userAgentName, this ); > else if( protocol =3D=3D SIPTransport::TCP ) > return new SIPTCPTransport( userAgentName, this ); > > return NULL; > } > > > Hope that helps. > > Joegen > > Thomas Raschbacher wrote: > >> Hi, >> >> If I wanted to use a custom transport without changing opensipstackcode = itself (ie it being in a different library and just sending events to the s= tack when it receives / sends/sent messages) how would I best do that? (Nee= d to use existing transports in non (L)GPL application, but want to use as = much of opensipstack as possible - the parser itself is no problem of cours= e, but I'd like to use a higher 'level' than just that which also implement= s timers and responses like TRYING, ...) >> >> Regards, >> >> Mit freundlichen Gr=FC=DFen >> Thomas Raschbacher >> ____________________________________________ >> itCampus Technology GmbH >> =D6sterreich * Deutschland * Italien >> Wehlistra=DFe 27b >> 1200 Wien >> tho...@it... >> Tel: +43 (1) 33418557-58 >> Fax: +43 (1) 33418557-958 >> http://www.itctec.com >> UID: ATU 6339 0618 >> Firmenbuchnr: FN292598t, Handelsgericht Wien >> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >> Joint Venture von itCampus und MEC >> >> itCampus Gruppe >> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Slow= akei >> http://www.itcampus.eu >> >> >> ------------------------------------------------------------------------= - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ opensipstack-devel mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/opensipstack-devel |
From: Joegen E. B. <joe...@gm...> - 2007-11-23 08:39:19
|
Thomas, BTW, OpenSIPStack default license is MPL 1.1 not GPL/LGPL. If you are=20 afraid that the modification below will render your proprietary code=20 violating the license, do not worry. The only thing covered by the MPL=20 is the modification done to OpenSIPStack alone and not your entire=20 application. Thus, If you indeed deploy your own transport, then the=20 code block below is the only thing you are obliged to make open or=20 contribute back to OpenSIPStack. Can you share why you want to use=20 another transport though? Joegen jo...@op... wrote: > Hi Thomas, > > You need to create your custom transports as descendant of=20 > SIPTransport. You would then need to override the following Virtual=20 > Method in SIPTransportManager to return an instance fo your custom tran= sport > > SIPTransport * SIPTransportManager::OnCreateTransport( > const char * userAgentName, > SIPTransport::Protocol protocol > ) > { > if( protocol =3D=3D SIPTransport::UDP ) > return new SIPUDPTransport( userAgentName, this ); > else if( protocol =3D=3D SIPTransport::TCP ) > return new SIPTCPTransport( userAgentName, this ); > > return NULL; > } > > > Hope that helps. > > Joegen > > Thomas Raschbacher wrote: > =20 >> Hi, >> >> If I wanted to use a custom transport without changing opensipstackcod= e itself (ie it being in a different library and just sending events to t= he stack when it receives / sends/sent messages) how would I best do that= ? (Need to use existing transports in non (L)GPL application, but want to= use as much of opensipstack as possible - the parser itself is no proble= m of course, but I'd like to use a higher 'level' than just that which al= so implements timers and responses like TRYING, ...) >> >> Regards, >> >> Mit freundlichen Gr=FC=DFen >> Thomas Raschbacher >> ____________________________________________ >> itCampus Technology GmbH >> =D6sterreich * Deutschland * Italien >> Wehlistra=DFe 27b >> 1200 Wien >> tho...@it... >> Tel: +43 (1) 33418557-58 >> Fax: +43 (1) 33418557-958 >> http://www.itctec.com >> UID: ATU 6339 0618 >> Firmenbuchnr: FN292598t, Handelsgericht Wien >> Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann >> Joint Venture von itCampus und MEC >> >> itCampus Gruppe >> Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Sl= owakei >> http://www.itcampus.eu >> >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> opensipstack-devel mailing list >> ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opensipstack-devel >> >> >> >> =20 >> =20 > > > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > =20 |
From: <jo...@op...> - 2007-11-23 08:26:30
|
Hi Thomas, You need to create your custom transports as descendant of=20 SIPTransport. You would then need to override the following Virtual=20 Method in SIPTransportManager to return an instance fo your custom transp= ort SIPTransport * SIPTransportManager::OnCreateTransport( const char * userAgentName, SIPTransport::Protocol protocol ) { if( protocol =3D=3D SIPTransport::UDP ) return new SIPUDPTransport( userAgentName, this ); else if( protocol =3D=3D SIPTransport::TCP ) return new SIPTCPTransport( userAgentName, this ); return NULL; } Hope that helps. Joegen Thomas Raschbacher wrote: > Hi, > > If I wanted to use a custom transport without changing opensipstackcode= itself (ie it being in a different library and just sending events to th= e stack when it receives / sends/sent messages) how would I best do that?= (Need to use existing transports in non (L)GPL application, but want to = use as much of opensipstack as possible - the parser itself is no problem= of course, but I'd like to use a higher 'level' than just that which als= o implements timers and responses like TRYING, ...) > > Regards, > > Mit freundlichen Gr=FC=DFen > Thomas Raschbacher > ____________________________________________ > itCampus Technology GmbH > =D6sterreich * Deutschland * Italien > Wehlistra=DFe 27b > 1200 Wien > tho...@it... > Tel: +43 (1) 33418557-58 > Fax: +43 (1) 33418557-958 > http://www.itctec.com > UID: ATU 6339 0618 > Firmenbuchnr: FN292598t, Handelsgericht Wien > Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann > Joint Venture von itCampus und MEC > > itCampus Gruppe > Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Slo= wakei > http://www.itcampus.eu > > > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > > =20 |
From: Thomas R. <tho...@it...> - 2007-11-23 08:22:06
|
Hi, If I wanted to use a custom transport without changing opensipstackcode its= elf (ie it being in a different library and just sending events to the stac= k when it receives / sends/sent messages) how would I best do that? (Need t= o use existing transports in non (L)GPL application, but want to use as muc= h of opensipstack as possible - the parser itself is no problem of course, = but I'd like to use a higher 'level' than just that which also implements t= imers and responses like TRYING, ...) Regards, Mit freundlichen Gr=FC=DFen Thomas Raschbacher ____________________________________________ itCampus Technology GmbH =D6sterreich * Deutschland * Italien Wehlistra=DFe 27b 1200 Wien tho...@it... Tel: +43 (1) 33418557-58 Fax: +43 (1) 33418557-958 http://www.itctec.com UID: ATU 6339 0618 Firmenbuchnr: FN292598t, Handelsgericht Wien Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann Joint Venture von itCampus und MEC itCampus Gruppe Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Slowake= i http://www.itcampus.eu |
From: Ilian J. C. P. <ip...@so...> - 2007-11-23 04:14:13
|
Hi, This was affected by modifications in the logging behavior for OSBC. Here's a quick fix: In SIPTransportManager::OnProcessInbound( EQ::EventQueue &, INT _event ) and SIPTransportManager::OnProcessOutbound( EQ::EventQueue &, INT _event ), insert "traceStream << "\r\n" << strPacket.str();" before SIPTransport::NotifyRead( traceStream.str() ); and SIPTransport::NotifyWrite( traceStream.str() ); in their respective functions. - Ilian Giuseppe Battaglia wrote: > Hi, > I'm using ATLSIP control, I updated the source with CVS because I had > problem with calls, now solved. > But now I have an issue: the old OnLogSIPMessage event returned a multiline > verbose log, now it returns only a line at time, with few info. > There is a way to enable the previous behavior of that event? > Thank you very much, > Giuseppe > > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > |
From: Giuseppe B. <giu...@bs...> - 2007-11-22 17:03:17
|
Hi, I'm using ATLSIP control, I updated the source with CVS because I had problem with calls, now solved. But now I have an issue: the old OnLogSIPMessage event returned a multiline verbose log, now it returns only a line at time, with few info. There is a way to enable the previous behavior of that event? Thank you very much, Giuseppe |
From: Ilian J. C. P. <ip...@so...> - 2007-11-22 10:20:59
|
Hi, You should be able to safely ignore that error. It's not really a requirement. The .vdproj file is for OSSPhone's installer project (MSI). Which, I'm afraid, is not available in the Express editions. Yes. If you have at least the Standard version, you can load the installer project. Regards, Ilian sebastian pastor wrote: > Hi all, > > last version of ATLSIP project includes a file with extension .vdproj. I > have a failure when trying to open OSSPhone.vcproj because it says that i > don't have an aplication for .vdproj files installed. > I'm runing on a Visual C++ 2005 Express Edition through Windows XP, would it > be fixed if i use a complete Visual Studio instead of Express one?? > > Thank you in advance > (BTW, i'm having problems finding Visual Studio. i suppose that it's a > highly-protected-with-license tool :S) > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > opensipstack-devel mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/opensipstack-devel > > > |
From: sebastian p. <seb...@gm...> - 2007-11-22 10:03:02
|
Hi all, last version of ATLSIP project includes a file with extension .vdproj. I have a failure when trying to open OSSPhone.vcproj because it says that i don't have an aplication for .vdproj files installed. I'm runing on a Visual C++ 2005 Express Edition through Windows XP, would it be fixed if i use a complete Visual Studio instead of Express one?? Thank you in advance (BTW, i'm having problems finding Visual Studio. i suppose that it's a highly-protected-with-license tool :S) |
From: Thomas R. <tho...@it...> - 2007-11-22 08:34:37
|
Are there any plans to provide api documentation - or at least (doxygen) co= mments or something like that? It is currently a bit difficult to see how everything works together .. (I = did run doxygen for the source, but without any comments some parts are sti= ll rather difficult to understand.. Regards, Mit freundlichen Gr=FC=DFen Thomas Raschbacher ____________________________________________ itCampus Technology GmbH =D6sterreich * Deutschland * Italien Wehlistra=DFe 27b 1200 Wien tho...@it... Tel: +43 (1) 33418557-58 Fax: +43 (1) 33418557-958 http://www.itctec.com UID: ATU 6339 0618 Firmenbuchnr: FN292598t, Handelsgericht Wien Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann Joint Venture von itCampus und MEC itCampus Gruppe Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Slowake= i http://www.itcampus.eu |
From: Thomas R. <tho...@it...> - 2007-11-21 08:22:18
|
Hi. I was wondering if there was a list of RFCs implemented by opensipstack as = I couldn't find anything on the webpage Regards, Mit freundlichen Gr=FC=DFen Thomas Raschbacher ____________________________________________ itCampus Technology GmbH =D6sterreich * Deutschland * Italien Wehlistra=DFe 27b 1200 Wien tho...@it... Tel: +43 (1) 33418557-58 Fax: +43 (1) 33418557-958 http://www.itctec.com UID: ATU 6339 0618 Firmenbuchnr: FN292598t, Handelsgericht Wien Gesch=E4ftsf=FChrer: Andreas G=FCnser, Andreas Lassmann Joint Venture von itCampus und MEC itCampus Gruppe Deutschland * Gro=DFbritannien * Italien * =D6sterreich * Schweiz * Slowake= i http://www.itcampus.eu |