This one webservice I did some work on
Well, the entire thing was a complete clusterfuck on so many levels, and one day I hope I'll be able to tell you the whole thing, but it's not something I can easily talk about because the API is so tied to their product it's not even funny.
But there is this. The whole thing was a client/server setup where you'd be getting more and more specific subsets of data each time and sometimes you'd see this turn up in the XML response:
And the documentation said, on the subject:
<Flag> - whether there is a flag set
Yeah. Considering my job on this one was to replace the shitty Java applet with a less shitty AJAX one... I ended up having to decompile the applet to figure out WTF the flag meant.
That is some helpful documentation there. Perhaps it was written by Mr. Obvious?
The best part is that Flag wouldn't always be 1. Sometimes it would be 0. Sometimes it would be some other power of 2 value.
Spotted just today:
Syntax Queue(queuename,[options,[URL,[announceoverride,[timeout,[AGI,[macro,[gosub,[rule,[position]]]]]]]]]) Arguments * queuename * options <snip, actual useful stuff here> * announceoverride <snip>
What the hell is
announceoverride? Toggle? Value? What does it mean? Does it announce overrides? What overrides, and why would I announce them to anyone?
'announceoverride' allows you to override the announcement specified in queues.conf using 'announce = ...' or add one to it in the first place.
Ah. Well nice, but why the fuck did I have to find a third party site to tell me that?
At least I didn't have to crack open the source code I guess.
I was going to point out the Asterisk wiki... but it turns out they don't have anything on what announceoverride does on the Queue() documentation page. All the other options, sure. Digium is TRWTF.
And speaking of Digium WTFs, the timeout handling on Park()... pretty much the ONLY application that uses ms timeout instead of s for what you pass it. And when I pointed that out in 1.6.0 or 1.6.1 or whenever I spotted it, they decided to update the documentation rather than making the application consistent with everything else.
And hooray me for typing Page() instead of Park() the first time. Posting on a Saturday is TRWTF
That was from the wiki. Additional info was from voip-info. I find most of the stuff there tbh, too bad a lot of it is outdated.