In VoiceGuide's Config.xml, in section <VoIP-Registration> please set the <LocalAlias> field to:
the LocalAlias should be the local address, not a remote address.
The reason why the SIP Register did not work as far as HMP was concerned was because of the Contact: field mismatch between the Register request and response.
SIP Registrars usually just use the Contact: setting provided in the original Register request, but the Yeastar PBX decided to use a different setting for Contact: in its reply.
In situations where the SIP Registrar changes the Contact: details we must change the LocalAlias to match.
(the actual Contact: field returned by the Yeastar PBX is email@example.com:5060 but just using firstname.lastname@example.org should be enough)
Also please add this entry to the <VoIP-Registration> section:
This will allow to quickly see if the REGISTER requests are being resent, without waiting for an hour.
After changing the Config.xml please stop both the VoiceGuide service and the Dialogic HMP service, and after the Dialogic HMP service has fully stopped the please start the Dialogic service and then start the VoiceGuide service.
Starting WireShark before starting the VoiceGuide service will let you monitor the REGISTER messages and confirm if they are being regularly sent to keep VoiceGuide registered.
Another option is to set up a direct IP trunk in the PBX. With direct IP trunk there is no need to do any registration.
PBX will just send calls direct to VoiceGuide IP address and VoiceGuide will answer all calls arriving at its IP address.
177 232531.237 7876 fn VoIPProvider_Register(protocol=SIP, reg_server=192.168.111.4, email@example.com, firstname.lastname@example.org:5060, sH323SupportedPrefixes=)210 232531.299 2912 ev GCEV_SERVICERESP (board device)
211 232531.303 2912 GCEV_SERVICERESP ResultInfo: gcValue=1285(0x505|GCRV_INTERNAL|event caused internal failure) gcMsg=[Event caused internal failure] ccLibId=8 ccLibName=[GC_H3R_LIB] ccValue=[0x93||] ccMsg=[IPEC_REG_FAIL_serverResponseDataMismatch] additionalinfo=