I know this is long after you posted the question, but I just solved this problem for myself with broadvoice. Here is how I got it to work.
I have four broadvoice accounts. For each Broadvoice account I made the following changes in the Broadvoice customer Web portal;
- Under Features->CallControl, disabled call waiting
- Under Features->Messaging, disabled voicemail
- Under Features->Premium, disabled distinctive ringing
- Under Features->Incoming, configured Call Forwarding Busy to go to the next number in the hunt sequence I desired
I tested it and it works fine – if line1 is busy, it rolls to line2, etc. The last line, of course, won’t have a forwarding number. You can use “Call Manager” applet to actually see a call come in on a particular number at Broadvoice, so you can observe the rollover happening.
One annoying Broadvoice application glitch: you can only be logged into one account at a time in the Web interface. If you try to log into more than one, the app gets confused and starts mixing up changes between accounts! Very bad behavior for a web application.
I also noticed that when I first tried using the Call Manager applet for each account, I was forced to change my login password for the Broadvoice web portal. This seems like a bug. I just changed the password back under the Accounts-ChangeYourLogin option.
Although this may be too late for you, perhaps others will find it useful. I know I searched high and low for the solution to this problem. I also got a serious bum steer from Broadvoice. They claimed that nothing could be done on their end, that inbound line hunting is an Asterisk configuration issue. I think they confused inbound line hunting with extension hunt groups.
P.S. Broadvoice supposedly supports two call appearances for each account, but I couldn’t get this to work with Asterisk. If I left Call Waiting enabled and made a call to Line 1 and then a second call to Line 1, asterisk saw the second call but gave some kind of weird “event not supported” message. I suspect this was because Broadvoice is sending a “call waiting” event or something. Disabling Call Waiting prevents a second call on the same line (you get a busy signal if ForwardOnBusy is not configured).