[libRETS-users] Support for RETS 1.8.0?

310 views
Skip to first unread message

Bill Linker

unread,
Jan 12, 2012, 7:26:35 PM1/12/12
to For discussion and help for and by the users of the libRETS C++library
GAMLS in Atlanta is apparently forcing everyone to switch to RETS 1.8.0 on January 23rd. Of course they did give everyone that wasn't on vacation for Christmas and New Years 30 days notice starting on Dec 22, so I guess it is ok.
 
I seriously doubt there was any thought as to whether their clients would be ready, willing, and able to switch to RETS 1.8.0 with the industry adoption of RETS 1.8.0 on September 30th, 2011.
 
If librets is not going to support RETS 1.8.0 any time soon, has anyone already figured out what changes need to be made to add support for RETS 1.8.0?
 
 
 

Bill Linker

ZipRealty, Inc.

 

Mark Klein

unread,
Jan 12, 2012, 9:34:41 PM1/12/12
to For discussion and help for and by the users of the libRETS C++ library
On Jan 12, 2012, at 4:26 PM, Bill Linker wrote:

If librets is not going to support RETS 1.8.0 any time soon,

What do you mean by "support"? If you are talking about taking advantage of new functionality in RETS 1.8, or are you talking about having libRETS provide current functionality against a RETS 1.8 server? 

At one point, I'd built a spec for what it would take to add 1.8 functionality to libRETS and Variman, but that was more than two years ago and my memory ain't that good these days, so I don't recall the details nor the effort off the top of my head. NAR declined to fund it as they were moving in a different direction in CRT and I needed to find a new paying project, so I let that languish and ended up finding a project that is not in the Real Estate industry. I have made some minor fixes to libRETS over the past year on my own, and Keith just added some needed functionality for Java, so I'm planning on doing a release in the next few weeks with that. But, a concerted development effort is not currently in the cards.

One of the things I did do was set libRETS to recognize the "RETS/1.8" header and as of today, the RETS/1.8.0 header. This will be in the next release and unless you need specific support that was added in 1.8, it should work for you.

As always, if you (or other libRETS users) want to prepare patches, I'll vet them and incorporate them into libRETS on a time permitting basis. Alternately, my firm is available for contracting to do any libRETS (or Variman) related work that you would like to farm out.


Regards,


M.

--
Mark Klein
PGP Key Available

Rob Overman

unread,
Jan 12, 2012, 9:48:37 PM1/12/12
to For discussion and help for and by the users of the libRETS C++ library
Bill,

I think there was a miscommunication. GAMLS will not be supporting 1.8 that quickly. Once they do support 1.8, they won't be disabling previous versions already supported. I checked with one of my good friends at LPS who's leading the development on GAMLS' new platform.

The position of RESO in this is that 1.5 and 1.7.2 meet ongoing and valid business needs and should not be *replaced* by 1.8 in all production systems. 1.8 is a great way to support a more robust UPDATE transaction but that purpose is far more limited in general usefulness.

That doesn't mitigate the real concern about libRETS support going forward. The RESO Board is working to devise a plan for funding ongoing development of client tools. Hopefully we'll have some solid information soon.

Thanks,

Rob Overman
RESO Treasurer/Secretary
http://twitter.com/roverman



_______________________________________________
libRETS-users mailing list
libRET...@crt.realtors.org
http://mail.crt.realtors.org/mailman/listinfo/librets-users


Bill Linker

unread,
Jan 13, 2012, 3:39:46 PM1/13/12
to For discussion and help for and by the users of the libRETS C++library, Data Administration
I think just support for the RETS 1.8.0 version header is sufficient. I do not need any edit capability (Update improveents and PostObject or whatever the new transaction is called). Perhaps the enum can be something like "RetsVersion.RETS_1_8_0_SPOOF" (or something to indicate only partial support). It would of course still send a header along the lines of "RETS/1.8.0"
 
Also, to respond to Rob Overman, here is part of the message from GAMLS:
 
"If you may have already received a message similar to this one and/or have already completed the migration to RETS 1.8.0, please ignore this message and thank you for your cooperation. If you however have not yet made the change to RETS 1.8.0, please carefully read the following and attached information, which is critical to your continued successful access to FMLS     raw unformatted property listing content
...
Additionally, users accessing RETS version 1.7.2 must now be transitioned to RETS version 1.8.0.
...
...
 1. Access to the FMLS RETS 1.7.2 server and the FMLS FTP server will be terminated in 30 days, on January 23, 2012. The servers will simply no longer be functional on that date. Accordingly, please make your cut-over ASAP.
 
2.     Both the FTP and RETS 1.8.0 server will continue to function parallel with the RETS 1.8.0 servers until January 23, 2012 and then your access to the RETS 1.7.2 and the FTP server will be terminated."
 
 
Looking at their language, I think you might see why I might confused by the repeated language that we "must" transition to RETS 1.8.0 and that RETS 1.7.2 access will be terminated.

 

Bill Linker

ZipRealty, Inc.

510-735-2780

 


From: librets-us...@crt.realtors.org [mailto:librets-us...@crt.realtors.org] On Behalf Of Mark Klein
Sent: Thursday, January 12, 2012 6:35 PM
To: For discussion and help for and by the users of the libRETS C++ library
Subject: Re: [libRETS-users] Support for RETS 1.8.0?

Rob Overman

unread,
Jan 13, 2012, 3:59:28 PM1/13/12
to For discussion and help for and by the users of the libRETS C++ library, Data Administration
Bill,

I see the confusion. This is FMLS making the change, not GAMLS. I'm glad to see continued 1.7.2 support by vendors.

Rob Overman
http://twitter.com/roverman



Bill Linker

unread,
Jan 13, 2012, 4:23:40 PM1/13/12
to Rob Overman, For discussion and help for and by the users of the libRETS C++ library, Data Administration
Rob,
 
Ah yes, sorry about the confusion on my part. "Fortunately" both data sources in Atlanta are changing at almost the same time and I got confused. It does not help that I just got back from vacation on the 12th to find out that 3 weeks of my "30 days notice" from FMLS were already gone.
 
Still, you indicate that the position of RESO is that 1.5 and 1.7.2 are still valid and useful, while it sounds like FMLS is acting as if 1.5 and 1.7.2 are now dead and useless.
If you have any clout at all with them, please contact FMLS and ask them to continue supporting RETS 1.7.2. I am a read-only user and have no need for the improved edit / insert functionality in 1.8, at least not at this time. Once there is some existing client-side support for RETS 1.8 (via libRETS or otherwise), then I would be more willing and able to add support for those features.
 
Hopefully you will be able to re-fund the libRETS project. It has been very useful because it has support for so many languages (i.e. we can code our own business rules / RETS client in the most popular languages and just plug-in libRETS to deal with the RETS communication).
 
 
 

Bill Linker

ZipRealty, Inc.

 

 


From: Rob Overman [mailto:codeim...@gmail.com]
Sent: Friday, January 13, 2012 12:59 PM

To: For discussion and help for and by the users of the libRETS C++ library
Cc: Data Administration

Alan Reeve

unread,
Jan 17, 2012, 3:29:23 PM1/17/12
to libret...@crt.realtors.org
I've checked out this thread as I'm in the same situation of having to finish my FMLS RETS conversion to 1.8 and am not sure what the verdict re: libRets is? I do know that I've tried using libRets and get the following error from my C# client...

librets.RetsHttpExceptionNative - Could not get URL [ http://fml.rets.interealty.com/Login.asmx/Login] - HTTP response code: 403

Am I doing something wrong or is libRets 1.5.2 not going to do the job in its present form?

The code is pretty straight forward...

RetsSession session = new RetsSession(RETSServer);

session.SetUserAgentAuthType(userAgentAuthType); // I've tried both UserAgentAuthType's
session.SetUserAgent(userAgent);
session.SetRetsVersion(retsVersion);

if (session.Login(RETSUserID, RETSPassword))

{ ... }

- Thanks, Alan

David Bills

unread,
Jan 17, 2012, 4:09:49 PM1/17/12
to For discussion and help for and by the users of the libRETS C++ library
Could be an issue with how you're setting retsVersion - this is an enum value.

Try:
retsSession.SetRetsVersion(RetsVersion.RETS_1_7_2);

...to set the RETS version. This doesn't address trying to set a 1.8 value - there is no way (there is no enum) to do that right now.

Dave Bills
Senior Applications Programmer \ Technical Support
Pikes Peak Association of REALTORS(r)

719-476-8154 Direct

if (session.Login(RETSUserID, RETSPassword))

{ ... }

- Thanks, Alan

_______________________________________________

Alan Reeve

unread,
Jan 17, 2012, 4:42:51 PM1/17/12
to libret...@crt.realtors.org
There IS an enum for setting it to RETS 1.8 in libRets 1.5.2. The enum is RetsVersion.RETS_1_8.

- Alan

David Bills

unread,
Jan 17, 2012, 4:45:55 PM1/17/12
to For discussion and help for and by the users of the libRETS C++ library
Yes, you're right. Embarrassed myself - was looking at 1.5.1 code.

Dave

Keith T. Garner

unread,
Jan 17, 2012, 4:53:20 PM1/17/12
to For discussion and help for and by the users of the libRETS C++ library
Alan,

I don't know if there's enough information here to know exactly what the issue is. A 403 is due to http authentication not working, but we can't see why that didn't work from what's here.

If you turn on http logging, there may be something in there that will be telling. You can mail that to libret...@crt.realtors.org

Keith

> _______________________________________________
> libRETS-users mailing list
> libRET...@crt.realtors.org
> http://mail.crt.realtors.org/mailman/listinfo/librets-users

--
Keith T. Garner - kga...@realtors.org - 312-329-3294 - http://realtor.org/
National Association of REALTORS® - VP - Information Technology Services

Mark Klein

unread,
Jan 17, 2012, 6:29:06 PM1/17/12
to For discussion and help for and by the users of the libRETS C++library, <librets-users@crt.realtors.org>
On Jan 17, 2012, at 12:29 PM, "Alan Reeve" <are...@reevesoft.com> wrote:

> http://fml.rets.interealty.com/Login.asmx/Login] - HTTP response code: 404

Snip

>
> session.SetUserAgentAuthType(userAgentAuthType); // I've tried both UserAgentAuthType's

Must be librets.USER_AGENT_AUTH_INTEREALTY

> session.SetUserAgent(userAgent);

And you're using the exact user agent they gave you?

If it continues to fail, enable logging as Keith suggests and one of us will take a look.

Regards,

M.
--
To quote my Bro: "Please forgive spelling and grammar mistakes, they're the fault of [his] iPhone."

Mark Klein

unread,
Jan 17, 2012, 6:32:21 PM1/17/12
to For discussion and help for and by the users of the libRETS C++library, For discussion and help for and by the users of the libRETS C++ library
On Jan 17, 2012, at 1:45 PM, David Bills <DBi...@ppar.org> wrote:

> There IS an enum for setting it to RETS 1.8 in libRets 1.5.2. The enum is RetsVersion.RETS_1_8.

That's just RETS/1.8. If the server requires RETS/1.8.0, it won't work. This is resolved in svn and will be in the next release of libRETS.

Regards,

M.
--
To quote my Bro: "Please forgive spelling and grammar mistakes, they're the fault of [his] iPhone."

Alan Reeve

unread,
Jan 17, 2012, 10:50:40 PM1/17/12
to libret...@crt.realtors.org
Thanks for the responses.

I'm starting to think the User Agent is the culprit. Actually they (FMLS) requested that I provided the User Agent string, and they also recommended Rets Connector for testing and specify the Beta version specifically as it lets you provide a User Agent. I tried that and it doesn't actually seem to let me provide a User Agent, but just prepends mine onto theirs. However, I get the exact same error 403 with a presumably invalid User Agent so I'm wondering if perhaps that didn't get set right and have a support email in to them. Hopefully it'll be as simple as getting the User Agent straightened out.

I'll do the logging tomorrow if it's still a problem. In the meantime, what is 'svn', can I get it, and any idea on the timeframe for the next libRETS release?

- Thanks, Alan

----- Original Message -----
From: Mark Klein [mailto:mkl...@dis.com]
To: libret...@crt.realtors.org
Cc: libret...@crt.realtors.org
Sent: Tue, 17 Jan 2012 15:32:21 -0800
Subject: Re: [libRETS-users] Support for RETS 1.8.0?

Keith T. Garner

unread,
Jan 18, 2012, 10:15:49 AM1/18/12
to For discussion and help for and by the users of the libRETS C++ library
On Jan 17, 2012, at 9:50 PM, Alan Reeve wrote:
> I'll do the logging tomorrow if it's still a problem. In the meantime, what is 'svn', can I get it, and any idea on the timeframe for the next libRETS release?

svn is the command-line tool named Subversion which is source code revision software. http://subversion.apache.org/ libRETS has been stored in CRT's subversion server since the beginning.

Can you get it: yes, its open source.

Can you get access to libRETS subversion repository: yes, its always been available read-only at https://code.crt.realtors.org/svn/librets/librets/trunk/

Unless you're building libRETS from source and not using one of the binaries we've made available, this may not be very useful to you. (At http://code.crt.realtors.org/projects/librets we have some stuff on building libRETS, but its not always for the feint of heart, especially on Windows.

Keith

--
Keith T. Garner - kga...@realtors.org - 312-329-3294 - http://realtor.org/
National Association of REALTORS® - VP - Information Technology Services

_______________________________________________

Mark Klein

unread,
Jan 18, 2012, 10:32:03 AM1/18/12
to For discussion and help for and by the users of the libRETS C++ library
> I'll do the logging tomorrow if it's still a problem. In the meantime, what is 'svn', can I get it, and any idea on the timeframe for the next libRETS release?

svn is Subversion, it is the revision management system used for libRETS source.
You can browse it here: http://code.crt.realtors.org/projects/librets/browser.
If you build libRETS yourself, you can always grab the latest and greatest
online from Subversion.

As for the next release, sometime within the next few weeks, though it could take
a month or more at this point. I'm doing this on my own time, so that means
evenings and weekends.

One thing that appears in this next release is that we roll to libboost
1.47 (there have been some major API changes that affect libRETS) and
I've been holding off until the API changes stabilized. That's now the case.

But, it means I need to build boost for Windows in 4 different flavors
(Microsoft C++, 32 and 64 bit; gcc (MinGW), 32 and 64 bit). Then, I
need to build libRETS in 8 different flavors (the above combinations
with both threaded and unthreaded libraries). As I said ... quite a bit
of work. So, bear with me.


Regards,


M.

Gerome Wilson

unread,
Jan 18, 2012, 3:03:55 PM1/18/12
to libret...@crt.realtors.org

Good afternoon,

 

I’m also in the situation of having to switch FMLS over to RETS 1.8 but I am having some issues with the login. The session’s RetsVersion has been set to "RetsVersion.RETS_1_8" but it returns the following exception:

 

librets.RetsExceptionNative was caught

  Message=Invalid RetsVersion: 4

  Source=librets-dotnet

 

 

Thanks,

Gerome Wilson

1parkplace Inc.
 
Description: 1pplogo

 

Alan Reeve

unread,
Jan 18, 2012, 4:44:30 PM1/18/12
to libret...@crt.realtors.org
I can confirm that I am now able to login to FMLS RETS 1.8 Server with libRets and that my issue was apparently the User Agent being incorrectly set. FMLS changed my User Agent to something that worked with Rets Connector and that worked and so does libRets now. I haven't finished my conversion, but I was able to login and retrieve metadata which is certainly good news.

So the lesson learned is that an error 403 can be an incorrect User Agent? :-)

FWIW I'm using the Win64 version of libRets under C# / .NET.

My login code is...

RetsSession session = new RetsSession(RETSServer);

session.SetUserAgentAuthType(userAgentAuthType); // UserAgentAuthType.USER_AGENT_AUTH_INTEREALTY
session.SetUserAgent(userAgent);
session.SetRetsVersion(retsVersion); // RetsVersion.RETS_1_8

if (session.Login(RETSUserID, RETSPassword))
{
...
}

- Alan

Good afternoon,

[cid:image0...@01CCD5D6.24A73FC0]

Reply all
Reply to author
Forward
0 new messages