GVoice In Flames No More

Joined
Jun 29, 2009
Messages
258
Reaction score
0
After I posted a comment in my blog saying the same thing I said above, Jonathan Rose showed up again and left this:

Michigantelephone: Well, while I agree that it’s frustrating that we can’t cover the Google Voice issue right now, it’s just a fact of life that we only have so many full-time programmers on call and we have to prioritize issues based on what appears most important to the most significant portions of our user-base. It might seem somehow dirty for an open source software company to suggest purchasing a support license if you want certain things prioritized, but the fact of the matter is that people (programmers included) don’t work for free and the only way we can get to issues like this faster is if we have more programmers, and the only way to hire more programmers is to have more revenue with which to pay said programmers. That’s a big part of why support customers get priority for their issues in the first place. If we have more support customers and if we keep the ones we have happy, then we can afford to hire more programmers who can in turn get more problems like this resolved.

Unfortunately, Google Voice falls into a sort of niche category where it’s a really cool feature to talk about among enthusiasts, but it just hasn’t been that much of an issue for the large scale resellers and other such Asterisk users who would actually be likely to have a support subscription.

For the record though, I wasn’t suggesting that you offer any of us a bounty. We wouldn’t be allowed to work on it anyway in that case. That’s just something you could offer as an incentive to get community developers interested. Digium developers aren’t allowed to take bounties, even on their personal time.
I'm not even going to comment on developers not being allowed to take bounties vs. the solicitation to purchase a support license. You say tomato, I say… either way, they're basically saying that someone's going to have to pay before this gets fixed.

I guess the first thought that jumps out at me is this: There are a lot of open source projects out there that never forget their roots. But it seems to me that the Asterisk folks have kind of forgotten that if it weren't for all the hobbyists and other non-commercial users that were willing to try Asterisk in the first place, it would have never developed to the point where it could be used reasonably reliably in a commercial setting. My second thought is, why did they even release Google Voice support in the first place if they were only going to effectively abandon it?

Since we still don't know if Google Voice will continue their service (as we know it today) into 2012, I'll refrain from going off on a major rant (not that it would help anything anyway). But this just confirms my suspicion that Asterisk may have had its day in the sun as far as the experimenters and hobbyists are concerned, but now it's time for something else (FreeSWITCH?) to take the stage.

I've pretty much stopped writing any new articles about Asterisk and things Asterisk-related because of attitudes like this. If they want to suddenly try to put the squeeze on us for money, they can find some other way to support their products. Ward, you've written many thousands of words in support of Asterisk and brought many users into the Asterisk fold — did Digium ever offer to compensate you for all you've done for them? And yet now they want money to fix an issue in a module that they developed, but that's primarily used in non-corporate settings? It just really feels like they have forgotten all the "little people" who helped them get to where they are today.
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,201
Reaction score
5,220
Haven't Seen Any Checks Yet

Why did they even release Google Voice support in the first place if they were only going to effectively abandon it?

My guess is that the basic rationale for releasing it was the fact that FreeSWITCH released a similar module and embarrassed the hell out of them.
 
Joined
Jun 29, 2009
Messages
258
Reaction score
0
Round 3! Jonathan posted this:

We don’t want money to fix it, I’m just telling you that if a customer were at stake, we’d be more likely to fix it sooner. Digium doesn’t have any expectation for hobbyists and tinkerers to be signing on for support contracts (that’d be pretty ridiculous). I’m just saying that if for some reason you *this is you in the hypothetical sense, not the actual you* were running a VOIP business and Google Voice was for some reason essential to some of your contracts, having a support contract with Digium would be an avenue you could use to make sure Google Voice got fixed quickly by full time staff.

Seriously though, it’s free software. The source code is freely available and we accept patches submitted to the bug tracker. You can only complain so much that we aren’t devoting costly resources to fixing a problem that no one is willing to pay for.

And I replied:

Jonathan, the only reason money came up was because YOU suggested, “…if you aren’t a programmer you could put a bounty on it or hire it out, or even consider getting support through Digium.” And again, my point has been that the FreeSWITCH people (whom, I suspect, have a lot fewer resources at their disposal than you guys) and the Obihai folks (who have only been offering their products for not quite a year) have managed to lick this problem, without suggesting that anyone pay to have the problem fixed.

I again point out the Digium blog post, “Top 10 tricks you didn’t know Asterisk could do”, where trick number 9 is, “Connect using Google Voice and GTalk.”

No one is asking you to devote “costly resources” to fixing this issue, but you’d think that just as a point of pride you’d want to make sure that a feature you’ve touted as one of your “Top 10 tricks” actually works as well as it works on those other projects, which I’m sure have a lot less funding than you do. Sometimes you have to fix a problem not because you are going to make money by doing so, but because it’s a blemish on your reputation and your corporate appearance if you don’t. If I were someone in business and I found out about this issue, I might just think, “Here is a relatively minor issue in their software, that everyone else seems to have solved, and yet no one in their organization seems to have the competence to fix it, nor the concern to do so even though they promote it as a feature. Why, exactly, would I want to trust them with my essential business communications?” You may think that’s unfair, but then some of us think it’s unfair that you can’t show up at a job interview wearing a flannel shirt and blue jeans. If you don’t care what others think of your company (and are willing to accept any financial consequences that flow from that) then go ahead and take the attitude that it’s free software, and that you don’t have to fix a problem that no one is willing to pay for. Just don’t be surprised if folks start taking a closer look at competing products.

(I had referenced the Digium blog post in one of my comments just above this series of exchanges on my blog, so I sort of assume he may have noticed that earlier mention).

I'm just really incredulous that it would take "costly resources" to fix this problem — I think that's just an excuse for not digging in and actually fixing the problem. Does anyone think I'm being too hard on the guy?
 
Joined
Jun 29, 2009
Messages
258
Reaction score
0
And yet one more post from our friend Jonathan Rose:

And the only reason I brought it (money that is) up is because I’m trying to point out that it really hasn’t seemed to be worth anything to anyone. If it were a really critical thing, people would be putting in time trying to fix it, it would be a constant topic of discussion on the mailing lists, #asterisk-bugs and #asterisk-dev would probably be buzzing more about it, etc.

Internally, we decide what bugs to work on based on a triage process where we evaluate what it’s going to take to get issues resolved and how they will benefit Asterisk as a whole. Google Voice in general has been in flux for a while, so even presuming we fix it, it’s a bit of a moving target that has a maintenance burden associated with it. Also, any internal developer that gets assigned to this issue would have to learn the surrounding code. Much of our Google Voice support came from community contributors in the first place, so it’s an esoteric area for internal developers. There is also a lot of pull right now to work on other stuff, like getting ready for new releases which are just on the horizon and current products getting ready to launch, so there just isn’t as much man power available right now to work on stuff. On the opposite side of that though, if lots of people are complaining about a problem, product management will see that and they will prioritize the issue accordingly. Right now on Jira I see one issue reported against Google Voice that has received little to no commentary that has been created/updated since October. With that in mind, please, if Google Voice in Asterisk is really important to you, make some noise where the actual community is going to see it… namely in the mailing lists and on IRC. We don’t get a lot of time to work on ‘issues of pride’ so to speak. The way we assign work is actually pretty methodical.

The problem with picking one issue like this and getting upset with Digium for not fixing it is that there are 700 issues currently listed on our issue tracker, ranging wildly in severity and involved work, and many of them actually garner the attention of the community. If people who are already using Google Voice on a regular basis would just look at some of the issues already on Jira and elaborate on them, that alone would probably be enough to get the problem noticed.

I’ve actually been wanting to look into the problem ever since a couple of our interns started messing with it back in September or October, but I’ve continually had other stuff on my plate. And there are other ‘cool but arguably inessential’ features I’ve been wanting to deal with lately as well like video support for certain applications like MixMonitor.

I'm tired and it's late (this was posted at 2:24 am according to WordPress) so I think I'm going to refrain from commenting further. In the end it just feels like we're getting the brush-off and that all the comments in this forum and on my blog don't even get noticed by the Digium folks.
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,201
Reaction score
5,220
The unfortunate part of this is we have literally thousands of people that use Google Voice reliably with PIAF all day, every day. Not many of us frequent "their lists" because of the raft of :shitb: that sometimes flows from asking a question or posting a comment. C'est la vie.
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,201
Reaction score
5,220
The problem with picking one issue like this and getting upset with Digium for not fixing it is that there are 700 issues currently listed on our issue tracker, ranging wildly in severity and involved work, and many of them actually garner the attention of the community. If people who are already using Google Voice on a regular basis would just look at some of the issues already on Jira and elaborate on them, that alone would probably be enough to get the problem noticed.

If you want a good snapshot of how far removed these folks are from reality, take a look at this Google Voice thread on SlickDeals this morning announcing that Google Voice calling was again free in the U.S. and Canada for 2012. It received over 5,000 individual views in the first hour after posting! 10,000 more in the second hour. 10,000 more in the next two hours.
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,201
Reaction score
5,220
Designing any system based upon the squeaky wheel is wrong on so many levels that it would take a book to detail all of them. In fact, there are lots of books in any MBA program that already do. What's missing in the equation is V-I-S-I-O-N.

squeakywheel.jpg
 
Joined
Jul 28, 2011
Messages
162
Reaction score
48
Perhaps Digium was hesitant to put resources into Google Voice because they considered GV a dead-end. Had free GV calls ended this year as originally anticipated, the demand for GV in asterisk would have undoubtedly died off to almost nothing.

Now that we have another year of free GV, perhaps Digium will give GV a bit more priority.

Given the history of Digium's general lack of interest in pursuits that don't directly make them money (which I don't fault, BTW), why not start looking at moving to freeswitch and blue.box?

I understand that there is a TREMENDOUS amount of work that's been put into the existing PiaF, and leaving that behind would be painful, but I just don't see the situation improving with asterisk, and to a lesser extent, FreePBX.
 
Joined
Jun 29, 2009
Messages
258
Reaction score
0
After I got a little bit of sleep, this is the response I posted to Jonathan:

Jonathan, now that I’m more awake I will just add a couple of comments.

First, if you doubt that there is any interest in using Asterisk with Google Voice, I refer you to the thread I’ve been posting on at the PBX in a Flash forum:

http://pbxinaflash.com/community/threads/gvoice-in-flames-no-more.9868/?t=9868

This is just one of several threads in various forums dealing with Google Voice and Asterisk.

From what you are saying, you are focusing your efforts of the issues that pop up most frequently in your issue tracker. I don’t know if you’re aware of it, but many FreePBX in a Flash and FreePBX users have the perception that if they post in any Digium forum (including your IRC channels) they are likely to be treated like dog poo on the lawn. Some of this goes back to the days when Asterisk@Home was new, and certain Asterisk “purists” seemed to resent the idea that anyone would create a GUI that allowed people to use Asterisk without writing dial plans by hand. But I think today the perception is that the Asterisk forums and issue tracker are a place for coders, not end users. There is a large segment of the Asterisk user base that doesn’t code (or create dial plans by hand, for that matter) and they are likely to feel daunted by the level of discussion that takes place there. Even in your first post here, you make the suggestion that I “possibly dive into the C code.” Would you ask your parents or grandparents to do that? Because, frankly, that’s the level that a lot of Asterisk USERS are at, and they are not likely to be using your issue tracker or hanging out in your IRC forums.

(Just so you know, I’ve never written a line of C in my life. I believe that C is a language that was foisted upon us by evil aliens who don’t want the average person to ever be able to learn programming!)
icon_wink.gif


In fact, the issues that percolate to the top of your issue tracker are likely to be the ones that most interest coders and other “geek” types. Those are the people most likely to subscribe to your mailing list or hang out in your IRC channels. Most end users would find your mailing list boring and uninformative (again, think of your parents or grandparents).

By focusing on what shows up in your usual, but heavily programmer-oriented methods of communication, you totally miss out on what end users are doing with Asterisk. To find that out, you’d have to hang out in forums like the PBX in a Flash forum. If their users aren’t coming to your forums (and for the most part, they just won’t) and your people aren’t willing to regularly monitor their forums, then there is going to be gap between what you perceive that your end-users want, and what really is a priority for them. I can guarantee you that Google Voice support is far more important to those people than something like “video support for certain applications like MixMonitor.” Frankly, at this point, I couldn’t care less if Asterisk supports video at all — sure, it might be a cool feature to have someday, but I don’t personally have a single phone with video capability. But I use Google Voice almost every day. I know that video may be somewhat more of an issue in certain business settings, but even there, I think you’d be surprised at how many users are happy if they can just place and receive plain old telephone calls. Just because a person with a technical background finds something interesting does not mean it’s even on the radar of major concerns for your end users.

(Yes, I was just kidding about the origins of the C language — although, if I recall correctly, it originated at AT&T’s Bell Labs, so that’s almost as bad!).
 
Last edited by a moderator:
Joined
Jun 29, 2009
Messages
258
Reaction score
0
Given the history of Digium's general lack of interest in pursuits that don't directly make them money (which I don't fault, BTW), why not start looking at moving to freeswitch and blue.box?

I understand that there is a TREMENDOUS amount of work that's been put into the existing PiaF, and leaving that behind would be painful, but I just don't see the situation improving with asterisk, and to a lesser extent, FreePBX.


Unfortunately, I feel just as you do about both these projects (other than that I probably would not have used the words, "to a lesser extent"). I hope that some progress is being made on that project using "other" software that we shouldn't be talking about yet! ;)
 

tm1000

Schmoozecom INC/FreePBX
Joined
Dec 1, 2009
Messages
1,360
Reaction score
78
Progress is being made....thats all I can say :wink5:

Unfortunately, I feel just as you do about both these projects (other than that I probably would not have used the words, "to a lesser extent"). I hope that some progress is being made on that project using "other" software that we shouldn't be talking about yet! ;)
 

tiggerpaws

Member
Joined
Feb 6, 2011
Messages
105
Reaction score
6
Well, just call me a half-geek.

I love the GUI with the option to add
hand coded tweaks.
 

fizadmin

Guru
Joined
Nov 27, 2011
Messages
78
Reaction score
2
Now that we have another year of free GV, perhaps Digium will give GV a bit more priority.
I'll be perfectly honest, were I Digium I would not invest heavily in supporting a service that could or could not continue to exist, on the whim of Google.

Sure, it may be free for another year in 2012, but the uncertainty of future support would not motivate me to invest resources to support it. I wouldn't fault Digium for not doing anything.
 
Joined
Jun 29, 2009
Messages
258
Reaction score
0
I'll be perfectly honest, were I Digium I would not invest heavily in supporting a service that could or could not continue to exist, on the whim of Google.

Sure, it may be free for another year in 2012, but the uncertainty of future support would not motivate me to invest resources to support it. I wouldn't fault Digium for not doing anything.

Well, I would, and I do. When everybody else that offers Google Voice support can fix their stuff, and when Asterisk doesn't even include the patch to chan_gtalk.c necessary to make incoming calls work reliably, then you have to wonder why they even bother to include the gtalk module in Asterisk. It's an embarrassment to them and says nothing good about their coding skills. It's part of the reason why I personally now consider Asterisk as :001_9898b: - it's one of those pieces of software that I'd drop in a heartbeat if there weren't a learning curve associated with going to something else.

In my opinion, Asterisk has had its day in the sun, but that day is over. Even the guys at Hak5 were dissing Asterisk this week, and touting FreeSWITCH:

http://hak5.org/episodes/hak5-1018

Stick a fork in Asterisk, it's done. Unless the folks at Digium get a major attitude adjustment, that is.
 

fizadmin

Guru
Joined
Nov 27, 2011
Messages
78
Reaction score
2
Fair enough - and I see your point. Then again, the issues with Digium and their generally lackluster support of Asterisk goes back a while, as I recall Ward's articles about Digium not really eating their own dog food (i.e. not running Asterisk company wide, for example).

Though, to be perfectly honest, dissing Asterisk just because Digium sucks, is kinda throwing out the baby with the bathwater - if Digium is asleep at the wheel, couldn't others pick up that slack? I'm not familiar with FreeSwitch, though.

Is that just another fork of Asterisk, or something completely separate? Asterisk is just the flavor/associated associated with Digium, right? Other forks exist?
 
Joined
Jul 28, 2011
Messages
162
Reaction score
48
Folks, we need to keep in mind that Asterisk is Digium's child, and they can raise it as they see fit. We may not agree with what they do, but we need to keep in mind that Asterisk is first and foremost a way for Digium to make money. I don't think they've ever made any claim to the contrary. Digium is paying for the code their developers write and they have every right to set direction and priorities for their developers.

I understand how frustrating it is for some feature of Asterisk (or FreePBX) to not work, and how it feels like blackmail for the developers to say "pony up some cash, and we'll raise the priority". But remember that for professional coders, fixing bugs and adding features is about paying bills - pride and craftsmanship must unfortunately take a back seat.

Digium has graciously released Asterisk under the GPL. This means that if and when sufficient portion of the Asterisk community decides Digium is no longer taking Asterisk in the direction they want, they can fork a new version and take the new version in whatever direction they like. Or, they can look to something else to fill the void. This is the true beauty of open source.
 
Joined
Jun 29, 2009
Messages
258
Reaction score
0
It's been a while since I've posted on this topic, in part because I've had little to say that wouldn't consist of more ranting about Digium pretty much abandoning their Google Voice support, and I know some of you disagree with my views on that, and in the end such rants accomplish nothing. But still, the problems have not gone away; if anything they have gotten worse. I know some of you have found that increasing the delay before answer, or playing a little bit of noise or maybe Allison saying "Hello" before sending the touch tone "1" helps sometimes, but I have not found any of those methods to work reliably, and anyway I hate the idea of making callers wait an extra 8-10 seconds before their call is connected through (and keep in mind, that gives you less time to answer before many will get frustrated and hang up. Gone are the days when people will wait a full six to ten rings for the called party to answer — nowadays if you don't answer in the first 20 seconds or so, a lot of people will give up, which is really frustrating to older guys like me, but that's a whole other rant!).

So I decided to actually try and do something about it, and I found a solution that actually fixes the problem, but some of you will not like it, and a few (those on systems with limited resources) may simply be unable to implement it. It's actually been around since even before Asterisk introduced their Google Voice support, but you may not have wanted to try it back then. Today, with all the issues with the Google Voice channel driver in Asterisk (particularly for incoming calls), you may want to take another look. The procedure is detailed here:

FreeSWITCH to add Google Voice to Asterisk

The funny part is that even though I had suggested that such a thing might be possible (and Bill from the PSU VoIP blog then created the instructions shown), it was right about then that Asterisk's Google Voice support came along, and it worked well enough for the first six months or so, so I kind of put this idea on the back burner. But when it finally got to the point that I was terribly frustrated with the issues in Asterisk's GV drivers, I dusted off Bill's post and actually tried it. It works great as shown if you have a single Google Voice account, and if you have multiple Google Voice accounts you can read the comments under the article (which I suggest you do anyway) to see how we got those to work. The multiple account support still isn't perfect since it is Caller-ID based and therefore will fail on call-forwarded calls unless you take an extra precaution or two (NOT mentioned in the comments; I felt like I'd already been far too verbose by then) but for outgoing calls from extensions and incoming calls it works great.

Now some observations:

1) Calls seem at least as clear, if not clearer than when using Asterisk's channel drivers. YMMV, of course.

2) Both outgoing and incoming calls complete MUCH faster - there is virtually no delay.

3) After finishing this, I removed all the Asterisk configurations related to Google Voice (commented out everything in gtalk/jabber/jingle conf files) and strangely enough some weird issues I've been having with spontaneous restarts of Asterisk seem to have stopped. Can't say for sure it's related but it sure makes me go hmmmm....

4) You PiaF guys (and probably everyone else) will want to block all outside traffic (coming from the Internet) on port 5050 (both UDP and TCP). I used Webmin to do this but the rules it generated (in /etc/sysconfig/iptables) are:

-A INPUT -p tcp -m tcp ! -i lo --dport 5050 -j DROP
-A INPUT -p udp -m udp ! -i lo --dport 5050 -j DROP

5) As a byproduct this could conceivably simply configuration in PiaF because if you are not concerned with allowing call-forwarded calls (and other types of calls that originate from somewhere other than one of your extensions) to use your Google Voice trunks then you may be able to get by with only ONE outbound route and ONE FreeSWITCH trunk for all your users — the proper Google Voice account to use will be selected based on their outgoing Caller ID.

6) Alternately, if you have multiple Google Voice accounts and need call-forwarded calls to work, the easiest way is to make sure that no outgoing calls go directly to your main FreeSWITCH trunk, but instead go to a CUSTOM trunk first. The CUSTOM trunks should be set up as follows:

Trunk Name: I use "GV_User_Name" but you can use whatever you like.

Outbound Caller ID: Put the same number here that's in the corresponding extension's Caller ID (the one used for calls outside the system), or use something else if you like but then be sure to change the FreeSWITCH configuration file to look for that Caller ID number. You only need a number here, not a name. Remember that Google Voice ignores what you put here (it ALWAYS sends the number associated with the account), so this is solely for account selection purposes in FreeSWITCH.

CID Options: Use "Force Trunk CID" — this is the whole point of doing this — by setting this we force it to send the Caller ID entered in the previous field, thus FreeSWITCH won't see an "offsite" Caller ID in a forwarded call (note: I understand this might be broken in FreePBX 2.10; if so, there's not much you or I can do about it. If you haven't upgraded to 2.10 yet and want to try this, I suggest staying at 2.9 or below).

Custom Dial String: SIP/FreeSWITCH/$OUTNUM$

This assumes that your (non-custom) FreeSWITCH trunk is named FreeSWITCH - if you used some other name, use that here also.

Don't change any other field from the defaults and don't use any Dialed Number Manipulation Rules. Make one such CUSTOM trunk for each of your Google Voice accounts, then create Outbound routes that select only the CUSTOM trunks, never the main FreeSWITCH trunk directly. That way, all calls hitting FreeSWITCH will come in with a Caller ID number that FreeSWITCH recognizes.

(Note that I am simplifying things here a bit; if those who are technically minded want to expound on what is really taking place under the covers that's great, but I'm trying to keep things relatively simple here. And there may be a better/easier way to do this; I just haven't thought of any other way that wouldn't be more difficult).

7) In the settings for the (real) trunk that connects to FreeSWITCH, you may want to add a statement like context=from-pstn-e164-us to use the built in context that strips +1 from the start of incoming US numbers.

8) When you use the instructions on Bill's page, during the initial installation of FreeSWITCH there will be a few times when it looks like it's taking forever and is stuck in an endless loop. This is normal. Just go away and do something else. Since I installed this on a remote system, I actually set up screen ("yum install screen") so I could disconnect from the running process and reconnect later, without having a bunch of useless (to me) output sent over my ssh connection (use your favorite search engine to get info on how to use screen or go here, or you could always look at the man page if those actually make sense to you).

9) If you have ever previously installed FreeSWITCH, be aware that this won't work right (especially with the mods suggested in the comments under Bill's article) if you don't go into the FreeSWITCH source directory and do "make current" (again, if you're doing this on a remote system and you have screen installed, you may want to invoke it before doing this).

10) (EDIT) Turns out that even FreeSWITCH can have issues receiving incoming calls reliably. I believe that adding a short delay (one second or so) before answering the call may fix the issue (see my February 1 comment under the article), but I am not 100% certain of that.

A big shout out and thank you to Bill for publishing this information many moons ago. I'm just sorry now that I didn't try this back when we started having all these issues. At this point, I honestly do not recommend that anyone use Asterisk's Google Voice channel drivers, but that is, of course, just my personal opinion.

Ward, perhaps you should consider a "PiaF Chameleon" version that install all this automagically — I know that some people would not be able to use it due to CPU, memory, or storage constraints, but it sure seems to solve a lot of issues, at least in limited testing. And as a bonus, once you have this installed, you could also try installing Bill's Skype for Asterisk using FreeSWITCH, for hackers, if something like that floats your boat.

Just a suggestion for those brave enough to attempt it! :D
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,201
Reaction score
5,220
See this post for the latest experiments with solving the failed inbound calls issue that some folks have.

I personally never saw this problem with Proxmox, but it showed up immediately using our RentPBX PIAF2 test server. No idea why. :crazy:
 
Last edited by a moderator:

Members online

Forum statistics

Threads
25,811
Messages
167,759
Members
19,240
Latest member
nikko
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.
Top