Ready to party

Well, the AAISPISSUP is almost ready.

Thanks to a lot of work by Victoria organising it all, and Sandra running around like a headless chicken today.

We have food, we have drink - all ready to go...

2pm kick off.

Pictures later :-)

... Pictures here ...


Testing it out...

Well, we now have call pickup and steal, and busy lamp fields, and ring groups...

So time to test - the support number will be directed via the new system.

First sign of trouble and we'll switch it back to the old system... But it is a Friday afternoon, so lets give it a try :-)

Follow-up: I have registered my mobile via the new system back-to-back in to the main call server, which means I can have a busy lamp light on my desk phone for my phone, and steal calls both ways - that is cool!

This is a real winner for the SIM2SIP stuff we do - very cool indeed.


Call pick up and steal

Well, it has been a good day today. We have the ring groups working nicely with a variety of options, and we have even managed busy lamp field working with SNOMs, which is well fun. Mind you - I spend a few hours re-scripting the bank as they have changed their on-line banking - grrr! But I got back on VoIP (not a three letter acronym) by lunch time.

So challenge for tomorrow morning is call pickup and steal.

This needs some security so I am making phones have a "level" and not allowed to pickup or steal calls of a higher level. That should cover it.

The idea is that dialling * and number is to pick up or steal a call from that number.

"Pickup" people mostly understand - if a phone is ringing for a group or a user you dial * and the number for the group or user and grab the ringing call. Simples.

But call steal is different - that is grabbing an answered call from a user. Why would you do that?!?

Well, we have found two very good reasons for this. It is really nice.

1. If you want to transfer a call across the office, instead of saying "I have a call for you, what's you extn number?" you say "I have a call for you on 123, can you take it?". They then dial *123 and grab the call. This works very well, and is much easier than transferring a call especially with some types of phone which make transferring a real pain!

2. You can move an existing call to your mobile by dialling * and your extn. Why? Well, it is home time, and I want to head off, to seamlessly moving the call to my mobile is cool. I can do it with a headset without the other party realising. When I get home I can even steal back to the house phone. It only works because we have mobiles as extensions on the system, but that is very cool if you can do it. This works so well and people are very confused that they are now talking to me at home but called me at the office. Well worth doing if you can.


Busy lamp fields

Well, I have the queuing design sorted, and half the coding, so that is nearly sorted. I am going to have to document this now...

Next challenge is busy lamp fields, on the snom phones. I think that is simple, even if it does mean an XML payload in a SIP UDP packet! Madness...

I'll experiment on that.

Plan is to start using this on the support number any day now. Obviously with very quick fallback to existing system (which uses asterisk to handle the queues). I think using the system ourselves will help sort any quirks very quickly.

Anyway, looking forward to Saturday - should be fun...

Night shift

So, it is 02:26 and my phone goes mental with texts from nagios in Amsterdam. I get up, check laptop and *I* have no connectivity!

We have nagios monitor a lot, from the office, and then we have another nagios in Amsterdam to monitor the monitoring. These texts tell me everything at the office is down...

Fortunately, using my 3G on the iPad I can see that the rest of the world is working (yes, all of it... google was there as well as our broadband lines).

So I am thinking power outage at office? But we have a UPS on the fibre, switch and router. How is it I cannot even see the office from home? That can't be it then.

So I am thinking fibre break. But that would mean both fibres (one to office and one to my house). That is possible maybe, but the DSL backup at the office should kick in - we test it every month!

So I am thinking I have no idea what is going on - cycle to office at 2:30 in the morning. Not funny.

Guess what. The damn UPS has died, so no fibre, no DSL backup, no switch and no fibre links. Arrrrrrg!

Now, this was just our office, but people have asked, on the rare occasions that there are power issues in the data centre, why we don't have UPSs ourselves. The answer is that (a) that almost certainly means a container of acid in a data centre; (b) it means our rack is live when power is off for safety reasons such as a fire; (c) it is probably against DC rules (see a and b); (d) people we connect to would be off so not a big help; (e) the DC has good UPSs; (f) it adds a new point of failure... So if ever we did have UPS in data centre (and were allowed to) we would only have it on one side of the dual feed kit. Today proves how having a UPS can make things less reliable than not having one.

Anyway, back to bed...


Queuing calls

Well, today was a lot of tidying up small details - sorting some multi-homing issues where the FireBrick has more than one IP. E.g. if a phone registers with the FireBrick it has the odd idea that it wants calls from the same IP it spoke to, so it seems (well, SNOMs seem to). So we are now tracking IPs used for calls and registrations, and allowing outgoing registrations to pick the source IP, and so on. Seems to be working well.

It may not be a long way to NAT support (which I am not planning to finish/test just yet).

I have also done some tidying up on passing the "display-name" on internal calls, and so on, as well as passing call withheld status cleanly.

There are many more small details, but the next big challenge is call queuing. This all ties in with hunt groups, the order in which you ring phones, and how calls can queue for a group.

I'm going to sleep on it and come up with a design - one concern is making it scale as I would love this to be a feature in the big FB6000 based SIP switch - so needs to be efficient. Queuing is complicated as you have to handle things like starting to ring a phone after it hangs up if it is now the only phone in the set available, and wrap up times, and people on do not disturb or rejecting the call manually, and so on. You also want the caller not to have to be ringing forever as they will clear the call, so we need some answer and tones after a time. We almost certainly want "overflow" members of the group too - only rung if the call reaches a certain time.

It should be fun. Once we have call queuing we may be able to start using it in anger in the office for support calls. We have a few brave customers tinkering now as well...

Flakey broadband back-haul lately?

It can't have escaped people's notice that there is something up. It seems to me that our favourite telco have some serious issues at the moment.

We are seeing a noticeable number of "blips" affecting a whole metro node at a time - e.g. a blip this afternoon taking out Edinburgh 20CN BRASs and FK and GW 21CN BRASs.

We also see that they have a lot of planned work taking a few hours over night. This in itself is odd as they should have redundancy. After all they did lots of planned work a few years ago to add redundancy.

We also have a case now where Faraday node has packet loss in the evenings (since the weekend), affecting 20CN and 21CN, and they have yet to even raise an incident reference over a day after reporting it. This suggests they have some serious congestion, but it seems to have started when they did some planned work.

We also have a case where a 20CN exchange has "hot VPs", i.e. congested back-haul, and they are refusing to fix it until the end of May. They also refusing to keep the fault open even.

All of these are issues that affect everyone using the same back-haul provider - which is a lot of ISPs.

It is all a tad worrying - I'll try and find more about what is happening, and if I can I'll post details here.


Transferring calls

I am pleased to say that call transfers just work - the logic is simple enough, and the previous nightmares in AASIP were all down to media renegotiation.

Basically, on the AASIP code, we did end to end SDP negotiation. That means that on a call transfer we had to re-negotiate the end to end SDP for the joined calls. This is made worse if the transfer is to a set of ringing phones, etc.

The new code means we do the media relay, so we never re-negotiate the media. All we have to do is change the mapping of what goes where internally - very simple. It also makes generating ring tone or the like in the middle of the transfer just work.

To add to the fun, it appears there are a few ways to transfer a call.
  1. Transfer a ringing call without answering (done using a 3xx response just like a divert)
  2. Answer call and blind transfer it (done using a REFER)
  3. Answer a call, put on hold, call another number, and transfer before answer (seems snom cancel the call and then REFER as above, but we allow REFER with Replaces=)
  4. Answer a call, put on hold, call another, wait for answer, then transfer (done with a REFER with Replaces=)
On top of that, you have rules on who can call what numbers when, and do you allow transfer of an outgoing call? and so on. All good fun.

I am still pondering if you should be able to transfer an outgoing external call to an external number... That may be a setting.


FTTC 80/20

We have pretty much decided the plan for FTTC lines moving forwards.

Basically, FTTC comes in many flavours in terms of what we can get out of BT. We are going to sell in exactly two flavours for customers as follows:-

1. Basic, which is the "not more than" 40Mbs down and the "not more than" 10Mb/s up sync speed.

2. Premium, for £10+VAT (£12) more a month which includes the "not more than" 80Mb/s down "not more than" 20Mb/s up speed and also elevated weighting within BT and priority in our network in congestion.

Note that the premium is not guaranteeing to be faster than the basic if you have a line that will not do more than 40/10 but will still cost more for the "elevated weighting" within BT and priority in our network.

The only issue here is that some people do not fit this. e.g. People on 40/2, or on 40/10 with elevated weighting. These people will pay for basic or premium based on the elevated weighting and have the option to upgrade the sync speed for £10+VAT and restarting the 12 month minimum term. Even so, upgrading to 80/20 will not always work in that a long line may not manage those speeds - in such cases the "premium" option is still provided by elevated weighting in BT and priority in our network for the extra £10+VAT per month charge.

People wanting to drop "premium", especially if they cannot get 80/20, can do so on our normal terms (charge for dropping premium).

Make sense?

FireBrick SIP feature plan

So, how do we market the FireBrick SIP features.

My plan is that the base models FB2500 and FB2700 will have a good set of SIP PABX features, but ultimately limits on number of calls and registrations (in the hundreds). This is the code I am working on now.

The fully loaded models will have extra APIs and external RADIUS based authentications, routing decision and accounting. This is coming soon, starting with RADIUS accounting data.

The 6000 model will do the same as the fully loaded, but with lots and lots of calls and registrations aimed at a telco. This is what we will eventually replace the existing A&A VoIP services with.

I will publish specs for the external authentication, routing and accounting information, and also provide free linux based C code for voicemail and call recording systems to work with the system.

Does that make sense?

ORGCon 2012

Well, I went along to ORGCon2012, first one I have been to.

It was very interesting - lots of like minded people.

Technically I am not an ORG member, just been dragged on to the mailing lists. I may even "join" as a result.

There were some very impressive talks from the keynote speakers, and a load of breakout discussions, of which I could only see 1/5 of them sadly. Watch the last talk to see how powerpoint should be done.

It was a tad strange that most of the speakers I simply agreed with! That was until the "think of the children" talk which had a mobile provider on the panel. He was powned (I think that is the right phrase). Somehow I got to comment that we, as an ISP, have no black boxes, and do not filter anything, and even make it part of the sign-up that you are asking not to be filtered. To my surprise, at the end of the talk there was a queue of people wanting my business card - I ran out!

So sounds like we should look at some sponsorship for such events. Bytemark, who are quite a competent hosting company, were sponsoring this time. I had not real opinion of them before, but after several drinks I get the impression they are a "good" company. Their sponsorship of the event worked well on me, and whilst we are unlikely to by hosting from them (what with being an ISP and all that) I am quite happy to endorse them.

Afterwards, drinks went on past "last train" and cost me a taxi to Bracknell, but I think it was well worth it. Even though not locked, my bike was still at the station on Sunday afternoon - having the excellent security measure that even though a new bike it "looks like something your grandfather would ride and has a basket on the front" so will never get nicked (It is a Pashley, and very nice too).

Sorry for scaring the crap out of Malcolm (a long story I will not bother repeating). Thanks to Victoria for doing a good job scaring the crap out of me - she is, as I understanding it, a lawyer specialising in litigation and understands defamation and was horrified than anyone ever considers running a blog! I promised to be a tad more "careful", but I do kind of like freedom of speech so that maybe hard work :-)

Thanks to everyone that spoke with me or bought drinks, and the excellent speakers and organisers, and well, everyone else. It was fun. Thanks for Alex for joining me. It was strange that walking through the door two people immediately come up and say hello as they know who I am - that is a tad scary some times.

One of the main things ORG appear to fight for is copyright reform. I am glad to see it is not a fight to simply abolish copyright - it has its place, but a fight to "fix" it.

Personally I think copying should never be illegal - it is far too much an automatic thing now that the idea of regulating the making of copies of digital data is as mad as regulating people farting.

In my view there does still need to be some way to ensure renumeration for creators. I would like to see rights to ensure fair payment for any commercial exploitation of any creative work. I would also like to see rights to acknowledgment and against plagiarism. It would be nice if the open source rights to attribute the kudos of the author to a work even if given away for no money.

But simply copying data or making available for non profit, I think is something that should be allowed. And I say that as a creator (albeit of software not music or video).

I am also very in favour of no mandated censorship - yes people can have choice and buy censored and filtered services, and very much parents should be able to control what their children access, but no top level mandated censorship of the Internet should ever be allowed, IMHO. And technology means that any censorship can be bypassed anyway. Some interesting talks on some the crazy ideas some people in government seem to have on this though.


Letter to MP on ADR...

Letter to Dr Phillip Lee MP, our MP:-

We are a Bracknell based internet service provider, and we have to be part of an Alternative Dispute Resolution (ADR) Scheme to handle arbitration of customer complaints.

We had our first case in 15 years this month and we are quite shocked at the way it was handled.

The Ombudsman Service Ltd (Otelo) took a case from a London based business, even though from a communications provider so not eligable to take a case to ADR, and even though after 9 months from the "dispute".

They agreed were were not in breach of contract, but then, in contradiction of our terms and contract law invented a £500 good will payment to make.

They ignored clear statements by the customer that they agreed the price and wanted to continue services in June last year and instructed we credit all charges after May.

We are shocked at how biased they are and would ask that you enquire as to how this happened and ask Otelo for an explanation.

It is seriously impacting the way we do businesses as an internet service provider based in your constituency.

Adrian Kennard


Well, we made our first SIP call from an IPv6 only gigaset phone to an IPv4 only SNOM phone via a FireBrick SIP gateway!

What can I say :-)

Follow up: We have SIP2SIM registration and calling both ways working too. So we have now tested a mobile calling an IPv6 gigaset DE900 IP PRO, and well, it worked!

Something else to SIP

No idea who sent it - but thank you - and I like the "gift message"...

Call groups

One of the things to consider in the SIP design is simple ring groups.

I have set up the basics now - a set of extensions that ring at once, and an alternative out-of-hours set that are controlled on a profile. Of course that meant testing the multiple ringing phones scenario carefully and I had a few bugs with that.

The fun one in SIP is the race condition of cancelling a call and answering it at the same time. We have that rarely on our VoIP service where two people answer a call "at the same time". It is a small window and at present we are broken in that one call gets no audio, or worse one way is to one phone and the other way is from the other phone. Messy, but thankfully almost impossible to reproduce.

Well, the FireBrick code handles this, and I even managed to create the race condition in testing. It correctly picks one phone (the first to answer) and cancels the other calls, or sends a BYE if one of them has in fact managed to answer at the same time.

All good fun. However, I have to ponder other types of ring group and how they work. So far I have this list, only point 1 of which is implemented:-
  1. Simple ring a set of phones at once.
  2. Choosing one phone to ring - based on some logic such as round robin, or longest not to have a call
  3. Cascade ring - ringing one, and then add more every few seconds (and picking the order in some sensible way)
  4. Holding off if one of the phones is busy - i.e. when it hangs up, if still ringing the group, ring that phone. Setting a number of calls per phone is part of this, as is a "wrap-up-time"
  5. Queuing, so if multiple callers to the ring group, present in order. A maximum queue size needed and some sort of queuing tone.
  6. Fallback option where all phones are busy
Did I miss any?


Getting out of hand

Well, today, we have a customer who is threatening to "make a formal complaint and report us to the regulator" because of our favourite telco having some blips today on Faraday. These are issues that are (a) outside our control (b) brief (c) affecting all 21CN lines on all ISPs in those areas (d) not unusual for a broadband service.

I am gob-smacked.

He has dived in with the treats from the start...

And then, the same customer is threatening to "make a formal complaint and take us to the regulator" because an email he sent bounced by the recipient mail server.

Again, WTF?

So this leaves me in the position of trying to tactfully explain that he clearly has a fundamental misunderstanding about the services we offer, and unless we can resolve that misunderstanding we will have to simply terminate services(with the contractual 30 days notice).

In the past I would have dismissed such stupidity.

What concerns me is that he could take it to ADR and get lots of compensation even though we have done nothing wrong. We live in worrying times.

Followup: The customer has kindly emailed saying this is not about the money (compensation) and that if we have wasted his time he will waste ours by taking us to the regulator. This email is proof that any ADR action would be vexatious, so I have saved it, and issued a migration code. What the hell does one do!?!?

Followup: He is not happy that we are terminating his service... What can I say!


Full circle

Some of you may know that 15 years ago, when we started, we sold mobile phones and ISDN PABXs. One of the most popular products we did was a package of an ISDN2 + 8 extension phone system, wiring and sockets and cable clips so that you could wire up a small home or office. It was so popular we even got boxes made for shipping the kit to people, and we sold hundreds of them...

Later, we started selling Network Alchemy PABXs which were a larger scale, and we sold systems with ISDN30 lines and hundreds of phones in large offices. We kitted out call centres. One of the small models was even on display in the science museum, thanks to us. We did a load of support software and sold boxes to do voicemail and call logging and billing. We led the way in integrating the phone systems and management tools. We even moved on to selling Splicecom phone systems.

I always wanted to make my own ISDN PABX though - as no system quite did what I wanted in terms of features. There was always something that was a compromise.

We gradually moved over in to Internet stuff over a few years, partly because the Network Alchemy did ISDN "dial-up" Internet access as a standard feature.

Since then we have started doing VoIP services, so you can have a phone on your desk with a phone number connected via the Internet. These systems are tricky when people have NAT and they are not playing IPv6 very well yet, so this is not ideal. But it works and we have thousands of VoIP customers. But this is not quite the same as the old "phone systems" we used to sell.

As of today we have a FireBrick acting as an Internet gateway and SIP gateway. Yes, much work to do but it sort of hit me that it is finally my chance to make a PABX.

What you probably don't realise is that I first started playing with PABXs on a 1 line 5 extension analogue system which I had at home and at my parents (IIRC) over 20 years ago. There was a 2 line analogue system as well, I seem to recall.

The design is very much a "per packet" system, and the FireBrick has no hard disk, so handling calls is fine but not IVR, voicemail or call recording. However, it can easily link to services "in the cloud" for such things and stand alone software on a local PC/server as well.

Ironically, a lot of features and "state" are now in the phones. e.g. Do not disturb, call forward, divert on no reply, etc. But the call server needs to handle ring groups and call queuing systems. It can handle things like "wrap up time". With the SNOM phone we can do busy lamp fields as well. And one of my favourite features "call steal" which is so much easier than transferring calls.

Of course the FireBrick can easily provide data on calls, queue times, and so on.

So, my plan is to make the FB2500/FB2700 provide a good set of PABX features. Obviously we like the SNOM phones, but it will be nice to integrate nicely with other makes of phone too. We will start using it ourselves in our offices when we are ready, which will mean it will get new features quickly.

I am also inclined to make it a standard feature in the base model. This is not definite yet, and maybe you will need a "fully loaded" brick for all of the features. To be decided.

Of course it will integrate well with our services. We will be able to have a small office, even if using NAT, with phones on desks and real phone numbers through us. We can have iPads L2TP in to the office LAN, and have mobile phone SIMs connect as office PABX extensions. I think it will be very cool.

P.S. please don't tell me that a multi decade long ambition to make a PABX from scratch is somehow "sad".

Testing SIP

Well, there are a lot of bits not finished, but I have issued an alpha release of FB2500 and FB2700 with SIP features in it.

Some details on http://www.firebrick.co.uk/fb2700/voip.php

Please don't expect everything to work!

I have made internal calls, incoming external calls, and outgoing external calls.

Special customers

Well, I don't usually do this, but I am sat down in the support office and this one was funny. Of course, on a serious note, could such a person take us to ADR if they are not happy? I wonder...

Customer had broadband and with it the free domain and email and web space. They ceased the broadband last year. Fair enough.

The issue, apparently, was that their email was not working. OK, lets fix that...

After much discussion we find that actually the customer has no Internet access. No, this is not as crazy as the case where they had not power, though that did really happen once!

Again, much confusion as they asked us to "check the line", which was ceased last year, and it got very confusing, and eventually we find that actually they use a vodafone dongle. It says it is connected but they still have no Internet. Apparently they have even tried next door's unsecure wifi, and that does not work either - no Internet.

So they want us to fix the email problem - after all they are paying us for email!

This is when we realise they are not in fact paying us for email or the domain. This was an oversight (a "shortfall"?) on our part leaving the domain "free with ADSL" when they cease the line. If happens occasionally and we ask people if they want to keep the domain (and pay) or not (and not pay for the time they had it free either).

I know the whole area can be confusing for some people, and we (techies) find it hard to see things from someone else's point of view. i.e. "What? I need working Internet in order to get my email!".

Thankfully we explained it well enough with the idea that if the TV does not work because there is no power, that is not a TV issue, it is a power issue!



So, leveling characters in WoW... You want them to increase level.

And get to 85...

I am feeling a tad like that - level 36 today, and level 38 tomorrow. Only that is insulin units.

What new talent points and skills as I level up?
  • Keeping awake
  • Not feeling thirsty
  • Actually able to write code
  • Less/fewer acne

3 SMS 03

Seems Three users can now text our 03 numbers. Yay!

Getting any operators to SMS us is hard work, but we have a cunning plan.

If you cannot text us on our 03 numbers, e.g. 03333400123 from your mobile operator you should complain...

If they don't fix it - well obviously - you take them to ADR.

That costs them over £300 even if they are "right", and if enough people do it then they will set up an SMPP interconnect with us. If you are lucky you may even get some compensation for the hassle. Bear in mind that their contract means nothing to ADR providers - they could be 100% in compliance with their contract terms and still have to pay you compensation.

Good luck.

It's good to talk

OK, first phone call - snom to snom via a FireBrick FB2700

It works!

Now, I have to go through a lot of details and testing. This is not working to an external carrier, just registered phones. It is not doing a call where it has to authenticate. There are a string of things that are very unfinished.

But I made a call - the rest can wait until tomorrow now.

Communications Provider

I had looked at the definition of "communications provider" before,but re-discussing in the office we found it was way wider than I thought before.

I had thought an “electronic communications network” actually required the extra bits such as software and stored data, but no, re-reading it includes associated things like that in the definition, and 32(6) makes it clear that just a transmitter is a "network". In addition, "provider" is tad misleading as it includes "establishment", "maintenance" and "operation".

You can understand why it is a wide definition - the Act is there to try and cover all sorts of (mis) use of transmission equipment, phones, and all sorts.

It is no surprised that it basically defines all of us as a "communications provider". After all, have you ever "operated" a mobile phone (aka "transmitter")? That makes you one.

What is funny is that there are now two clear cases where being a communications provider is an exclusion. We see now that the right to use ADR is not available to someone who is a communications provider. We also know the DEA defines a subscriber as someone not buying a service as a communications provider.

Read the definition - what do you think?

Communications Act 2003 section 405 (1):-

“communications provider” means a person who (within the meaning of section 32(4)) provides an electronic communications network or an electronic communications service;

Communications Act 2003 section 32 (4):-

references to the provision of an electronic communications network include references to its establishment, maintenance or operation;

Communications Act 2003 section 32 (1):-

In this Act “electronic communications network” means—
(a) a transmission system for the conveyance, by the use of electrical, magnetic or electro-magnetic energy, of signals of any description; and
(b) such of the following as are used, by the person providing the system and in association with it, for the conveyance of the signals—
(i) apparatus comprised in the system;
(ii) apparatus used for the switching or routing of the signals; and
(iii) software and stored data.

Communications Act 2003 section 32 (6):-

The reference in subsection (1) to a transmission system includes a reference to a transmission system consisting of no more than a transmitter used for the conveyance of signals.

Communications Act 2003 section 32 (10):-

In this section “signal” includes—
(a)anything comprising speech, music, sounds, visual images or communications or data of any description; and
(b)signals serving for the impartation of anything between persons, between a person and a thing or between things, or for the actuation or control of apparatus.


Bad timing

So, here I am, pissed again at ADR and injustice.

And my brother calls up - unhappy his line is crap.

TBH we know his line is crap, he knows his line is crap, and we have tried a lot to fix it. At the end of the day the service is the best we can do with the copper pair, and if that is a poor speed then, well, it is a poor speed. We try a lot to get the line better - probably more so because it is family, though we are pretty tenacious regardless. We did a load at Christmas to get that line back on line even involving BT directors.

But he calls up saying we should get compensation out of BT and he will not pay me for a service. FFS I charge him cost price!

If my own family are going to be arse holes what hope is there?

What is especially annoying is that he knows we have been tolerating a poor service for a few weeks as FTTC is due end of month and I am planning to upgrade to FTTC (at my cost FFS) as soon as we can. I have (at my cost) installed all the kit needed including an FB2500 fully loaded FireBrick, and, for now, a DSL modem.

We are all set for some serious bandwidth in a few weeks time.

And he calls being an arse - what can I say?

P.S. My dad phoning and apologising for him worked. This time.

More on ADR

Arrg, every time I try to drop it, more comes up.

There is a lovely bit in the Communications Act, which the Ombudsman kindly referenced in their reply to my recent questions.

52 (6) (a) says that the ADR stuff does not apply to someone that is himself a communications provider. It then also defines only consumer or small business as 10 or fewer employees.

The definition in the Act of "communications provider" is very wide, and IMHO, covers anyone with a DSL router, but this specific case related to someone who's business was live streaming video and that is a business which is in no doubt whatsoever a "communications provider".

So once again, the ombudsman should not have taken the case, as the end user was, quite simply, not eligible for it.



Well, up to 36 units a day now. The diabetic nurse said "I told you that you would not see much until 40 units" to which I explained she said "20 units"... but what the hell?!

My morning blood sugar is occasionally down to 10, but often 12 or 13 still. This is way better than 20 or so it was getting to at the start. So clearly things are happening. "Normal" is around 5 to 7.

I really felt a tad hypo today - having skipped breakfast - but the blood test said 10, which is far from hypo (it would have to be 5 or less to feel unwell normally).

So, keep going - keep upping the dose, and see how it goes.

The main thing is, over all, feeling better.

Close Encounter

Well, I have now done the tone system - named tones with defined sequences of frequencies and levels and option to combine two frequencies. We have defined the standard signalling tones for BT SIN350 (e.g. ring tone, engaged tone, etc).

We have a configuration option to allow tones to be redefined.

I have a test brick on [phone number removed] at present, which just answers with a tone.

I think enough for today - call routing logic tomorrow I think.

P.S. This is what it plays (wav file) - I'll delete the number tomorrow.


Mr. Watson, come here -- I want to see you

OK, actually, it is beeeeeeeeeeeeeeeeeeeeeeeeeeep.

The SIP code is making progress! It is not the target I wanted - which was a working phone call, but it is a good deal of progress. I have calls to the FireBrick being answered and feeding a 1KHz alaw tone nicely to the caller. When the call is ended the tone generation also stops (phew!).

I still have a lot of general call control to do, but the audio handling should be simple from now on - either relay from another RTP, or generate silence or tones. Plan is to have the standard tones, possibly with configuration. I also want to sort the telephone-event stuff when one end does out-of-band DTMF and the other does not, but mapping events to proper DTMF tones in-band.

The audio will need the call recording and monitoring logic at some point - that will be fun :-)

But getting close now. So maybe one day next week I'll have something we can issue for testing. Sorry it is taking so long.

I even fitted in watching the F1 this morning - but I think I have had enough coding for today.


One SIP at a time

Well, slow progress. I am trying to get as much of the actual RFC as practical done "properly", and that is slow going. However, we are getting there. We have the message retransmissions and, handling ICMP errors, and DNS lookups, and all that now.

I now have it identifying INVITEs, and at least saying "100 Trying" when they are valid. It is a nightmare, as you have to work out if it is a new INVITE, or a resend of a previous one, or a re-INVITE in an established call. If a new INVITE you have to work out if one from an outbound registered carrier, and so not challenged, or if from a user, so challenged for credentials. This is all before I have the concept of third party authentication via some means like RADIUS which will add to the fun a lot!

Anyway, I am at the stage of creating "call leg" records, so that I can handle the whole process of the invites and call establishment. I suspect I need to do the media relaying before I can go any further as (understandably) the phones I have will not progress a call if there is no media negotiated :-)

So that is next step really. I may try and make a call complete in to the brick hitting a simple internal tone generator. Then I can look at doing the same with an outgoing call. These should nicely allow CANCEL and BYE processing to be completed. I am planning to include simple tone generation code, so ring tones, etc, all work sensible.

Then finally gluing calls together - that will be fun.

I plan to allow simply hunt group logic as well even in the 2500/2700.

I am just not confident I'll get it done my tomorrow night now. So maybe it will drag on to next week. Shame, but I won't say what slowed me down so much this week as I promised to drop it :-)

BTW, we are also trying to sort out a simple mailman type mailing list for firebrick and A&A testers. Watch this space.



Sorry, "The new iPad (3rd generation)", or whatever it is called.

Hmm - I feel the gene that makes one like "new" and "shiny" kicked in erroneously here. I did the queuing and the buying this morning. Mainly as I have two people I know that could benefit from a hand-me-down iPad2's. If not, I may not have got the new ones.

Yes, thicker.

Yes, heavier.

And, err, yes, nicer camera and display?

I have no doubt the display really is better. Sadly the old display was so damn good it is hard to tell them apart. And this is from someone that does watch HD channels on TV and can tell the difference!

Several people today have said to myself and James, "the new one looks the same as the old one", and then mistakenly pointed to the old one when side by side thinking it was the new one! The new display is good, not doubt. So was the old one!

It actually has a different feature - the dictation mode, but only works when on the Internet, is a tad slow, and a tad very stupid. So not really using that yet.

But really - I would not rush out and buy one I you have an iPad2 already.

Yes, get one if you don't - they are so shiny!

Anyway, it has taken my mind off AD*. Someone suggested I should take A&A to AD* myself, on the basis that the award, as a good will payment, would be tax free, and it is a cunning way to get tax free money from my company! Sorry, I'll really try and put it behind me now, sorry... More SIP code tomorrow honest.

Elf & Saftey

So, you queue for a new shiny... And Apple seem to try and provide some sort of refreshment while queuing. I don't know the commercial arrangements but when queuing in Covent Garden last year we had food and drink provided by local vendors. I expect Apple pay for that.

So, in Reading Oracle shopping centre this morning, we have someone from the Starbucks that it literally at the end of the queue opposite the Apple entrance asking if we want a coffee, juice, or some food item... Excellent. The food thing they were handing out, and no, I do not recall if a biscuit, a bagel, or a croissant, sorry. I think a biscuit of some sort.

So I said I would like a coffee. My son said an orange juice (which is a juice in bottle from "just juice" or some such which Starbucks sell).



For "Health and safety reasons" they cannot actually bring you the drink! Not even the bottle of orange juice. And no, you cannot jump out of the queue line, it seems.



This is a person that works in Starbucks, handles hot coffee and cold orange juice all day, is trained in such handling and conveying of such items, and they are not allowed, for health and safety reasons to bring it too us.

Yet, we, as mere mortals, with no training, can (after queuing, trusty, for some time and getting the new shiny from the Apple store) are allowed not only to carry away our coffee and/or orange, but take it to our car, drive to the office, carry it up some stairs (stairs! I kid you not - real stairs - dangerous things) and hand it to someone else...

WTF is the world coming too?


2Q or not 2Q

Well, son is pestering.

Wants me outside the apple shop in Reading silly'o'clock tomorrow queuing.

Do I really want to?

After all, I personally have lost over £1000, after tax, on this ADR issue. I am not sure I can afford the shiny shiny.

Decisions, decisions...

Moving on - lets get SIP working...

Well, I have to put the ADR stuff behind me now - the main changes (apart from changing to the other ADR provider) are better record keeping so that any future case is a lot less work making a case file. We also need to have more paperwork and bureaucracy - whenever a customer says something such as suggesting they want to cease a line we will need to get a very clear statement from them one way or another so that some abritrator skimming the case file later does not miss facts!

But really, moving on, honest...

The SIP coding this week has really suffered. I am just in the process of making outbound registration requests. The protocol handling is slightly more work that the incoming registrations which just have to make responses. Outgoing requests need to have resolution of names, retries, and matching the responses that come in to the request. That means slightly more work on the protocol handling code to do that. I am reasonably confident I can get that working today.

This will mean we have the core SIP messaging (albeit only UDP at this stage) for both inbound and outbound message exchanges (transactions). It means moving to handle an INVITE to actually process a call will not be that hard from there! The biggest protocol element involved will be the SDP (message payload) and making the RTP actually pass the audio. To be honest, that is not as daunting as I expected.

Once we have that all working, we will find that we have missed obvious things, I am sure. We need to test actual scenarios, real phones, etc. I am sure we will need many tweaks and changes to the configuration structure as a result. I'll issue an alpha for customers to play with once we get there.

At this stage I am not sure if SIP will be in "fully loaded" bricks only, or a standard feature. It should avoid so many headaches with NAT and SIP that it may be a standard feature.

Once that is done, one of the really complicated issues we had with the previous SIP code I wrote was handling call transfers. I think it will be a tad easier with this code, but it is a complicated area with many different ways to transfer calls. That may not be something we get sorted this week! The main difference is that the previous (linux) call server was trying to act as a proxy. The FireBrick is a user agent and server providing back to back call handling. This avoids a hell of a lot of headaches, especially with things like call transfer.

Moving on from the simple SIP concentrator logic of the 2500 and 2700 needs quite a lot of work though. For a start we need RADIUS (or some other protocol) for authentication, call routing decisions, and especially call accounting. We will need call recording and various control systems tracking and re-routing live calls. But having got working protocol elements and RTP in the low level box, this should not be a massive job to move forward to make a big SIP router on the 6000 series. That may be some weeks later once the 2500/2700 code is matured and tested more. Maybe I'll even fit in OSPF work in the mean time :-)

So, my challenge for then end of the week is to (a) forget ADR (b) get to the stage of an actual call being made through an FB2700.



We have added a new step to our customer complains code:-

Step 5: Non ADR - we pay you to use the real court and not ADR

We have to participate in an ADR scheme, however we would rather a fairer dispute resolution via the county courts.

If you are a small business or consumer that could take us to ADR, and we have not resolved your dispute after 8 weeks - we offer to let you take the matter to the real county court small claims track for no fee! Obviously, if we have issued county court proceedings against you then you already have the option to counter claim and this offer does not apply.

Ask us for a deadlock letter at 8 weeks and state that you would be happy to waive ADR and take the case to court at our expense.

If you agree not to take the matter to ADR and we agree to pay your fees - which we will do by email - we will pay your court fees for filing a claim against us in the county court small claims track. Simply file the claim on Money claim, pay the fee, and tell us the bank details to which the fee is to be repaid to you. Within 3 working days of us receiving the county court claim and your bank details we will credit your account with the court fees paid. If the case needs to go to a hearing and that requires another fee, then again, within 3 working days we will transfer payment for that additional fee.

In fact - we are so keen on cases being handled by a real court, and not ADR, that if you do this we will pay you a minimum of £100, or the court fees if higher, providing the complaint has got to a stage that you could take to ADR. Basically, ADR costs us money, and that would be better to be money sent to you than to a third party arbitrator.

Regardless of the outcome of the case, you get those payments from us as a non refundable good will gesture. Obviously if we lose the case, these payments are part of the settlement as your court fees and compensation.

P.S. since posting it, and as a result of comments, the exact offer is changes a tad. See http://aa.net.uk/legal-dispute.html and do let me have comments.


Having taken the legal advice, and given up on this, we have questions for the ombudsman. I cannot see how asking such questions, as a customer and member, cannot be valid or how they could in any way backfire or cost us.

So we have asked them:-

We have asked some questions, and most were not answered.

Now that the case we were dealing with is over, we are, of course,
trying to make changes to our business processes. Almost all of these
changes are bad for our customers, which is a shame, but we have no choice.

We do, however, have a very loyal customer base, and after news of this
case came out we have a lot of customers stating on their enquiries
words to the effect of "we promise not to take you to ADR".

I am trying to find out if such a promise is valid - if someone says
that, and then they do later take us to ADR, will you still accept the case?

I hope you can find the time to answer us, as your customer, and a member.


And also:-

Another question which I do not believe was answered...

If we have a dispute where a customer owes us money, it is clear that
the customer could refuse to pay and take the matter to ADR.

It is clear that even if we have started proceedings in the small claims
court, you will still accept a case.

What we want to know is: at what point you will not take a case?

If we have issued a county court claim and have a judgement against the
customer for non payment, is it then a "resolved dispute" and so not
acceptable as an ADR case.

Is there some point earlier, such as if we have a hearing date, i.e.
where the customer has clearly accepted the jurisdiction of the courts
by filing a defence?

We need to know exactly when, and if, a cause via the county courts is
no longer eligible for ADR.

This is highly relevant to the timescales under which we issue county
court proceedings where customers refuse to pay. 8 weeks is a very small
time scale for such things, but just about possible.

I look forward to your reply on this matter.


The farce

Thanks to a very helpful solicitor specialising in arbitration, we have some legal advice on this. She agrees that this is completely unacceptable, and questions whether the contract we have with the ADR provider is at all valid. Technically we can appeal, via the Arbitration Act and going to court.

However, she says that the contract allows them to pretty much do what they like, decide their own jurisdiction, and make any award they like. She says that it would be bankruptingly expensive to challenge it.

Sadly, she advises that we should pay up and change ADR. She offered to look at the contract with the other ADR provider as well.

So, just to clarify, if you are a consumer or small business dealing with any telco, it appears that :-
  1. Even if they have not broken the contract, you can take them to ADR and get large "good will" awards.
  2. Even if you agree to service and prices, you can take them to ADR and get those charges refunded.
  3. Even if you make up new disputes that you have not raised with the telco first, you can include them in the ADR complaint and they will be considered, but the ADR will not show the telco what you said.
Whilst we have been told by the ADR that we can publish the decision, the legal advice is not to, sorry.

Just to be clear here, they agree we are not in breach of contract, but required us to pay £500 as good will.

They claim the customer asked to cease service on 31st May, but we have emails in June where we say that they can cease the services on the on-line order page and the reply with [sic] "We want to continue the service". We emailed in June asking if they agreed the prices and services and the reply was [sic] "Yes. Agreed". Yet, we are ordered to credit the charges for June and beyond.

I knew the law was an arse, but this is special. I am not sure how this has been allowed. I am not sure how we can get this changed.

The result is that we have to change the way we work with customers, and none of it will be good. The customer complaints code is already a lot more bureaucratic. The terms are already more onerous (not that contract terms actually matter, it seems). We cannot afford to ever go out of our way to do anything special for a customer because if it goes wrong we can be taken to ADR. I am at a loss. I am going to go home and cry.

P.S. If we get more ADR cases, prices go up to cover the extra costs and so our customers all lose out - well done championing the consumer cause there!

P.P.S. I would like to thank everyone for their support and encouragement on this issue. I do appreciate it.


SIP progress

Needless to say the SIP work has suffered due to ADR.

I am trying to calm down and make progress. However, I have got it properly recording inbound SIP registrations which check the username and password correctly.

I do however have to work out ways to handle this for external connections. You will typically have a carrier connecting in, and that may or may not be authenticated. There may also be external registered SIP devices. The problem is that if I respond to REGISTER requests asking for Authorization details then people will sip-vicious the FireBrick.

We actually put this code on a brick last night and by morning it was under attack.

Obviously we make sure attacks don't work by blacklisting source IPs and so on. But that does not stop someone trying.

So we have to come up with a more cunning approach to handle this. I suspect we have to check the from/to details are sensible before returning a 401, and if not sensible then not reply to external requests.

Some pondering needed :-)

Anyway, next bit of code is outgoing registrations (i.e. to a carrier).

Once that is done - we get on to actually making calls, which is where it gets to be fun...

ADR: Stand back and review

Apparently the next step is reporting us to OFCOM if we do not comply.

They also say their decision is final and so no need to send them anything more.

We do plan to dig out all the proof of their factual error in claiming that the customer asked to cease the service. They should consider a factual error. We have told them once and they ignored us.

We don't believe the customer asked to cease, and later emails discuss both the price of the ongoing service (stopping "premium" on the lines) and stated "we wish to continue with the service". They also used the ongoing service.

One of my biggest gripes is that a dispute over the date they asked to cease does not exist! The customer has not disputed this to us. They have simply included it in an ADR claim. So we have not had the chance to resolve the dispute.

Confusion over cease dates is something we sew up very well in our terms - we provide a "receipt" by way of a digitally signed order confirmation, and if the customer cannot provide the order confirmation (or number thereof) then they have to pay the ongoing charges. If they can, then we correct our error. It is a simple one to resolve.

Anyway, I think we probably need to ask OFCOM about this. They are the ones requiring us to comply with a decision made in accordance with the scheme rules (which we assert is not the case here).

At least if we are asking OFCOM we preempt being "reported" to OFCOM.

However, I am trying to get some legal advice on this.



I am shocked.

I do not know what to say.

They are ignoring FACTS such as the customer asking to keep the service going after May.

They are considering and acting on matters that post date the date of the claim itself so cannot be part of the complaint that is being considered.

They are refusing to provide the details actually sent by the claimant.

They are insisting on a £500 "good will" payment.

It makes no sense. It is wrong. Simple as that.

I have asked what they do to enforce this - if it involves going in front of a real court and considering this case.

We took longer than anyone expected to install a service for a customer, but met the deadline they asked for, having not guaranteed a delivery date.

The ombudsman AGREE we are NOT in breach of contract - that ALONE is reason to dismiss this case.

Oh, and they don't like me putting this on a public forum!



No documentation or anything :-)

SIP: Making a start

Well, started coding this morning - working on the SME "SIP concentrator" functions first. So far I have a SNOM phone registering which means a lot of the protocol elements are in place. Need to do more on that and a lot of testing, and then I can move on to actual calls!

Going to be a busy week.


Aiming high

We try and operate our links to carriers with enough overhead to not be the bottleneck. We often have 99.9% figures in our link report, but it is always pleasing when we manage 100.0% across the board.


Putting it off

Well, I planned to tackle a couple large software developments as few weeks ago, and have found excuses to do a lot of smaller jobs.

The main job a SIP concentrator for the FB2500/FB2700 and a large scale SIP switch for the FB6000. The other is OSPF on the FireBricks.

Maybe I'll actually start one of these next week... Nothing else booked (yet).

P.S. I won the race to level 85... :-)

Zoom doing IPv6

The zoom x7n is finally working for IPv6 on PPPoA. We have been sent new code which does this.

This is yet another low cost DSL router with working IPv6 - we have tested on our standard broadband service and it received a prefix delegation which was announced on the LAN and routed IPv6 traffic. Logs show some slight quirks, but nothing major. Basically, it is working.

Hopefully this will be released as their standard code shortly.


John J Maher

Burying a friend is never good - and I mean standing by the grave as they lower the coffin - that sort of burying. It is all so final. I really cannot get my head around it. I am rational, but still it seems incongruous that he is no more.

The wake was "good" in some sense - there were a lot of people. The church was full and the wake was fuller. He was well liked. John Joseph Maher will be missed.

The service was in a catholic church, and I tried my best not to look out of place. Maybe a third of the people there did not do the communion bit. It was polite to sing the hymns. The eulogy was very good. The multiple unsubstantiated claims of certainty were teeth gratingly annoying, but I was trying to be polite.

He will be missed, and I feel sorry for his family. If belief in sky fairies helps them, then best of luck with that - I do understand. We are all entitled to our own fantasies especially if they help us feel better in a difficult time like this.

Myself, I am still coming to terms with it. John was not really a close friend as such - he came to a dinner for my Birthday last year and I had not seen him since. I recall he tried drinking a framing drink of some sort. It was funny. He died on my birthday this year and that was a shock - we got the call during a dinner that evening in a restaurant. But even so, he was a friend, and he meant a lot to me and to many people I know well.

If it would have not been out of place to take an iPad to any funeral, it would have been John's. He loved gadgets. I did bring my iPad to the wake afterwards but at the funeral I had a turned off phone and no iPad. Rare I know.

Apparently his iPad was invaluable. John was a project manager and had lists and details and contacts and everything on the iPad. His family were able to use it to ensure they managed the funeral and contacted everyone. The fact his phone, only just returned by the police, was synced over the "cloud" to his iPad helped even more.

Even so - a tragedy - only 52 and killed on his motorcycle, not his fault. I know some ask "why?" but why do you think there is an answer and who would answer. At the end of the day shit happens. It is sad.

Who should pay?

Discussion point.

I am not saying who this is yet and not even saying "our favourite telco" on this occasion.

We buy a service - a broadband connection - delivered at a master socket in a premises. It is a service we sell to our customer (the end user).

If something make that service, at that service delivery point (master socket), stop working, then it should be fixed, clearly. We pay for a working service.

What if the cause of the brokenness is some radio interference, on the telco side of that master socket, not actually on the end users side of it.

A common example is a faulty plugtop power supply such as a mobile phone charger causing radio interference. We have also see faulty satellite equipment, and even poorly installed telephone lines in lifts!

What if it is someone down the road interfering with all the ADSL lines on the road?

What if it is someone in the same building complex but not actually anything to do with the end user?

Now, an engineer will get called out, and investigate, and after some time may find the cause and persuade the owner of said plugtop to replace it or at least turn it off! Problem solved.

The issue is that a lot of people get involved in making that happen. The end user spends time investigating the issue. We spend time investigating it. We get our supplier to investigate. Ultimately one or more engineers actually go there, test things, hunt down the problem. The owner of the plugtop spends time on it. That is a lot of work done by a lot of people.

So who pays for that?

Who should pay for that?

Or is it one of those things - each party doing the work has to take the hit for that work to get things fixed even if not their fault?

I only ask because we have a case of a 3rd party interference, and our supplier is insisting we pay for the engineers involved. That does not normally happen, but in this case, even though clearly "3rd party", so (obviously) not us causing it, but also not even our end user causing it, they still want us to pay. They seem to have no good reason why we pay, and not the party employing the engineers, and not our supplier, but us. Clearly we can't charge our customer for fixing the service we provide to them, we would be stuck with the bill.

Maybe I need to have our customer bill us for their time, and we add out time and bill our supplier, and our supplier adds their time and bills the telco, and the telco adds their time, and bills the person with the faulty plugtop. That would be just as logical as the way it seems to be done now. The last step means showing a tort though, and maybe that last person needs to bill the manufacturer of the faulty equipment, who then charge their insurers...


Legacy IP!!!

Well, this is embarrassing!

We issued new FireBrick code today...

The main changes are work in PPPoE and DHCPv6 clients on PPPoE to make it all a lot slicker and handle IPv6 prefix delegations from your ISP.

As always, before a release, we did lots of testing. We even found FTTC PPPoE a tad sluggish and had to allow longer timeouts for them. We tested on 20CN, 21CN, BE, FTTC, direct connections to a FireBrick BRAS, all sorts. All worked.

So we did a beta and a few people tried it and all well - so we made a factory release - that means FireBricks updating automatically.

And then three FireBrick customers went off line and stayed off! People using PPPoE.

OK, We have a system - we withdraw the release, which we did. That stops the auto upgrades. They are spread over 24 hours for a reason! I was in Azeroth but got dragged back to reality to check this...

Found the problem - we had not tested legacy IP only connections. It seems a bug in PPP negotiation timeout caused that to fail if there is no IPv6 on the line.

The problem is that all of our test lines and equipment have IPv6. Of course it does. Why would we have a line with just the old legacy Internet protocol? The new IPv6 has been around over 15 years, so who is not using it? Really? Heck, IPv4 ran out last year.

We're sorry about that. We have issued new code that fixes it right away.

And we'll test old legacy IP protocols in future. It is really embarrassing, sorry.

P.S. In the unlikely event of an A&A broadband customer using a FireBrick with PPPoE and not having IPv6 and having been upgraded so now off line - we just have to add IPv6 to your line. I think customers can even do that on the control pages. But who is using A&A and a FireBrick and not using IPv6, seriously?


Automatic IPv6

This generation of FireBrick has had IPv6 built in in from scratch. It has proved very useful for customers wanting IPv6 on their network.

We put in the PPPoE client code some time ago, and now our preferred configuration for FireBricks in an office is to use PPPoE. This works directly on FTTC/FTTP and with DSL modem or bridges.

The IPv6 works nicely. You configure the LAN with the IPv6 blocks that we (or your ISP) are routing to you.

As we got DSL routers that handled IPv6 we added DHCPv6 serving to the LNS so delegate the IPv6 prefix to the router. The router then broadcasts router announcements for the delegated prefix on the LAN. Works well.

DHCPv6 is a horrid way to do it, as I have said before. A broadcast protocol on a point to point link; using a no routable link local address on a link with source filtering; Using IP level protocol on routers where it can hit firewall rules. Also it is not associated with the link state or established as part of bringing up the link itself. All very messy. But we have it working on the LNS.

Today I have been putting the final piece of the puzzle in place with DHCPv6 client in the PPPoE code so that am FB2500 and FB2700 can get a delegated prefix automatically. I have it mostly working this morning, but need a few more bit and some testing. I have issued an alpha with what I have now anyway. I still need to handle the PPPoE link address (IA NA) and DNS servers. I am not sure the RA timing is quite right on the delegated prefixes yet either - needs testing.

In principle it is simple, but as ever there are challenges. The main one is that FireBricks are a tad flexible. Even the FB2500 can have hundreds of interfaces with ports and VLAN combinations - so which LANs do we get prefixes for exactly? The FireBrick can also handle multiple PPPoE connections.

My main objective is that it is simple for the typical case. In fact I have been working on making a factory reset FireBrick use a default login and password to get on to the Internet and in the process to get an IPv6 prefix for the LAN. But I also want it to be flexible as well.

What I have come up with is a setting on the PPPoE config allowing you to say which interfaces you want a prefix for. The PPPoE connection then requests the prefixes you have asked for and allocates them to those interfaces. That allows different PPPoE links to provide prefixes for different interfaces in a variety of combinations. Obviously if multiple PPPoE links are providing the same prefixes to the same interfaces (as with our typical bonded lines) then that works too - with each DHCPv6 response updating the prefix to the latest expiry time. The default is, however, to delegate for all interfaces on the same routing table that are not RA clients - so a sensible default. You can also set to an empty list so no prefix delegation is done.

I think this makes sense. I'll probably do more updates tomorrow to finish it off.

P.S. Now does the IPv6 WAN address, and (in theory) DNS servers. Just testing now.


Slicker PPP

I have spent all morning tweaking PPP.

It is not that there was a problem or anything, but as I was working on the whole area to get a DHCPv6 client in the FireBrick PPPoE side, I was looking at it.

I had not realised we were taking a few seconds to fully negotiate.

The problem was that we did not send the next packet immediately on a state change for every normal event - we waited for a one second poll to check for timeouts and/or next thing to send.

In practice this worked well, but introduced a couple of places where there was an extra delay of up to a second in the negotiation.

On our LNS side this did not happen as the authentication is proxied which eliminated one stall leaving only the IPv6CP negotiation. The result is IPv6 took up to a second longer to come up, which is probably why nobody noticed. After all I have customers that would have complained if PPP was not working as well as it could (some are involved in the pppd stack on linux).

Where it really was more noticeable was using the FB2500/FB2700 as a client, e.g. on FTTC. This had two or three places that would stall up to a second.

Well, the changes were mostly simple. I already handled the logic of a received PPP message means sensing one back immediately - either as a reply or the next message to send.

The startup on PPPoE completing was not immediately sending the first PPP packet, so that was one stall easily fixed.

I had missed one step where CHAP was accepted - I should immediately go on to start IPCP at that point, so that was another easy fix.

The less easy fix was when we sent an ACK, and that completed a stage. We do IPCP before IPV6CP (though we could do in parallel I guess) and when we sent IPCP ACK we did not also start IPV6CP. That meant the rx packet processing had to cope with two packets to send as a result instead of one. Again, not a big change.

The end result is that on the bench I have PPPoE and PPP negotiating all the way in under 50ms, and in fact all within a second of boot up.

Next test - FTTC line. How fast can we be on line from power up on a real connection. I'll add details when we have tested that :-)

Data we have so far :-

1. BE line using vigor modem, PPP kill from our end, loss of 2.5 seconds of pings at 0.1 second intervals.
2. More tweaking and above managed a PPP kill where we lost 1 second of pings from outside of our network.
3. A software reload of an FB2500 on a vigor on a 20CN line - 2 second downtime


The shortfalls

People asked what "shortfalls" we had that justify a "good will" award of £500 even though it is agreed we are not in breach of contract.

Whilst I am not sure we can publish their initial decision, I am happy to publish some of our comments to them and a summary of the shortfalls.

The first part of our reply is :-
The claimant has stated to the court in their defence of Reading case XXXXXXX that they referred the matter to the Ombudsman service (Communications) on 9th January 2012. This agrees with the details of complaint statement you sent us. Unless you are accusing the claimant of perjury then this means that the matter is outside the 9 month limit defined in 9.1(c). As there are no exceptional reasons to justify the delay this puts the Ombudsman service in breach of terms with us by accepting this case. We require you to drop the case and refund the case fee. If you do not do so within 30 days we will start proceedings in the county court against you without further notice. We will also claim compensation for our time handling this case.
But the apparent shortfalls are as follows :-
  1. An installed line without annex M is too slow. Annex M was added afterwards. Note we don't guarantee line speeds so not actually a shortfall as we did not agree a target and fall short of it.
  2. Some of the dates we advised for likely install of orders changed and were inconsistent. We basically passed on what details we had as orders progressed, and did not guarantee the dates. Apparently this is bad. We have asked if they would prefer we don't pass on information we get in case it is ever inconsistent and if that would be better customer service some how.
  3. We apparently did not reply to an email - given the case file was something like 500 pages of email I am not surprised some were missed. I am not happy about it, and more than happy to apologise for losing an email. It did not change the outcome of anything or delay anything. And as we never guaranteed any response times for emails, not a shortfall. We did reply to their follow up email. Note that the ombudsman service clearly think not replying to every email is perfectly acceptable as that is what they do to us - in fact not replying to most emails we have sent.
  4. We finally managed to get all 4 lines with annex M installed in time for the event. Even the ombudsman's decision starts by saying they wanted service "in time for the Royal Wedding", which we managed. Apparently meeting the stated deadline even though not contractually required to is a "shortfall".
  5. We billed for services from the date they were supplied. Somehow this is an error and a shortfall. We are at a loss on that one.
  6. One more case later of apparently not replying to an email promptly.
So, that is what justifies £500 "good will" award, and also writing off around £700 of unpaid invoices.

Our main issues are :-
  1. They accepted a case that was outside the 9 month limit; was already resolved (in that the £6.69 claimed had been settled); was already resolved in that the proposed resolution of "let out of contract without penalty" had already been done; and that was a frivolous case (£6.69).
  2. When they took the case they failed to look for a mutually acceptable resolution and ignored the statement from the customer to them that they would be happy with being let out of contract without penalty and also our statement to them that we agreed that.
  3. They invented targets we did not offer or agree and that the customer did not even ask for, and then penalise us for not meeting them.
  4. The ignore contract law which is that there is no requirement for us to compensate someone where we are not in breach of contract
  5. The ignore the contract which limits what we are liable for and make an award for much more
  6. They make a punitive award even though not allowed
  7. The invent a figure of £500 with no explanation and call it good will, which is  contradiction if forced to pay it.
  8. They insist services from 31st May be credited even though the customer asked for them, used them, and has not disputed them. We have an email in June stating "we want to continue with the service". They do not explain why they are saying this. They also say to waive all late payment charges even though invoices are still not paid even now.
  9. They considered and acted on numerous issues with actually post date the complaint date. i.e. This case is to resolve an unresolved complaint that was made on 17th March 2011, but many of the shortfalls and remedies appear to relate to things later than that date which were never part of that complaint and have not even been part of a later complaint.
The only point I am even vaguely happy about is that we are asked to apologise for the shortfalls. I won't do that as they were not shortfalls. I am happy to apologise for some emails not being replied to promptly. I am even happy to apologise that it took longer than expected, even though we met their target. I am pretty sure we have already apologised a few times. We gave a £272.17 good will credit as well, so I think we have been more than fair as we did not have to do that.

So, an 11 page formal response is being posted to them today, including the threat of legal action against the ombudsman. We'll see what happens next.

Actually, just to condense facts to the key points here...
  • Customers asks A&A for complicated service (4 line uplink annex M bonded) "in time for the Royal Wedding"
  • A&A delivers exactly what is wanted "in time for the Royal Wedding" and customer is happy with what was delivered so much so he wants to continue the service after the event.
  • Customer thinks A&A over charged £6.69
  • A&A credit customer £272.17
Err, right, and this is a case for ADR why exactly?

Event (not so) brite

So, first time using eventbrite. Seems simple enough.

Small snags so far...

The control pages - event in Bracknell
The event page - some place south of Sweden!

Also, can't see how to set as BST for the time of the event not GMT.

P.S. The location magically fixed itself!

P.P.S BST is in the time zone list, right down the bottom and nowhere near GMT+01:00 in the list!


AAISPISSUP 31st March. Bracknell

We will clear the training room and get some drinks and nibbles in. It is a Saturday so we plan to have an afternoon event but no doubt some will stay on in to the evening and possibly involve pizza.

It is a chance to meet some of the staff in an informal atmosphere, meet the orc, and meet me.

It will be the last day of our 15th year as Andrews & Arnold Ltd. Quite a milestone.

A&A Offices in Bracknell, from 2pm (BST), 31st March 2012

Book a place
Key signing

Losing the race

Arrrg! All this work, and worrying about ADR, mean I am now losing a race to get a character to level 85 against my daughter's partner. It is getting a bit close now with him on 83 and myself on 82.

I wonder if I can sue the ombudsman for the stress caused by this :-)

<--- me on a bad day - and you wonder why we do lunar billing.

ISO8601 is wasted

Why did we even bother? Why create ISO8601? A new API, new this year, as an industry standard, has JSON fields like this "nextAccessTim...