MWI subscribes, expires, does not re-subscribe (bug?)

I asked this over at the FreePBX community, but I thought I would ask it here to get a wider audience. Apologies to people who read both boards.

My Asterisk subscribes to external MWI notifications with a line in SIP_gen_custom like this:
mwi => 1234:password@sip.anveo.com:5010/301

This works for an hour, until the subscription expires. Then the VOIP provider sends a notification that includes this:
Subscription-State: terminated;reason=timeout

Asterisk replies with a Bad Event like this:
Status-Line: SIP/2.0 489 Bad event

After that, Asterisk does not re-subscribe and does not receive MWI notifications until I do a reload or a restart.

Has anyone run into this before? Anyone have any ideas on how to solve it? This looks similar to this post which never got an answer.

I can’t find anything else about this on any Asterisk sites, I’m stumped. Need help from someone smarter than I am.

Peter.

if you are using MWI subscription with chan_sip module, there is an unfixed bug in asterisk crashing it after a while. It is important to move all SIP peers to extern notify.

could this solve the problem?

Thanks for the confirmation of a bug. It is not exactly crashing, but it is definitely doing odd, unexpected (that is, buggy) things besides failing to re-subscribe.

Unfortunately, external notify won’t fix it for me. I am trying to pick up when a voice mail is left at my SIP provider, so I would need THEM to run the external notify and I doubt that is a service they offer. They will send an email when a message is left, but not when it is read or deleted, so I can’t fully control the MWI with that. (It’s a long story why I also use an external SIP provider for some voicemail, but and I may try to get away from it if I have a lot of spare time.)

So getting MWI subscription to work seems unlikely. Any recommendations on what might help it function a little better? Any chance that PJSIP will implement this correctly (sooner or later)? Has ANYone gotten it to work?

Thanks.