https://medium.com/@wolfnbro/polycom-zoom-preliminary-dial-rules-7688b28d3293
I’ve found Polycom DMA dial rules can be complex and but crafted to provide a simpler support and user experience. Recently I needed to create a *97 prefix rule to route calls out to Zoom in a SIP/H323 mixed environment. This required two start with 2 rules b/ I guided to use an External SIP peer to route SIP out the RPAD, while using a H323 dial rule where “route to external address” is used. Therefore since I’m using two types of routing this will not allow me to combined SIP and H323 rules, but I’m looking to identify why SIP isn’t routing properly with a rule “route to external address”.
Below is the preliminary script for the SIP rule “resolve external SIP peer”.
//this sets a variable for domain used in the replace
var domain = “zoomcrc.com”
//var domain = “162.255.36.156”
//match rule if *97 is dialed
if (DIAL_STRING.match(/^sip:(\*97)([0–9]*)@(.*)/))
{
// this takes *97meetingid and removes the *97 and changes the domain to Zoom’s domain. ex: sip:*9712345@dmadomain.com -> sip:12345@zoomcrc.com
DIAL_STRING = DIAL_STRING.replace(/^sip:((\*97)([0–9]*))@(.*)/i,”sip:$3@”+domain);
return NEXT_PROCESSOR;
}
// this will route a call when *97 is dialed
else if (DIAL_STRING.match(/^sip:(\*97)@(.*)/))
{
// this replaces sip:*97@dmadomain.com with join to land the call on the Zoom auto-attendant were the user will be prompted for the meeting id. sip:*97 -> sip:join@zoomcrc.com
DIAL_STRING = DIAL_STRING.replace(/^sip:(\*97)@(.*)/i,”sip:join@”+domain);
return NEXT_PROCESSOR;
}
return NEXT_RULE;
H323
var domain = “zoomcrc.com”
// checks to see if
// remove *97 and add @zoomcrc.com to the dialed meeting ID
if(DIAL_STRING.match(/^\*97([0–9])/)){
DIAL_STRING=DIAL_STRING.replace(/^\*97([0–9]*)/, “$1@” + domain);
return NEXT_PROCESSOR;
}
//
else if(DIAL_STRING.match(/^\*97([0–9]*)/)){
DIAL_STRING=DIAL_STRING.replace(/^\*97([0–9]*)/, “join@”+domain);
return NEXT_PROCESSOR;
}
return NEXT_RULE;
My medium post can be found here on this topic.
updates to only allow specific sites to use this rule
// var domain = "vip2.zoomcrc.com"
var domain = "vip2.zoomcrc.com"
//var domain = "162.255.36.156"
//var domain = "204.141.29.248"
if(CALLER_SITE_NAME.match(/ZTEST/) || CALLER_SITE_NAME.match(/AVLAB1/) || CALLER_SITE_NAME.match(/AVLAB2/))
{
if(DIAL_STRING.match(/^\*97([0-9])/))
{
DIAL_STRING=DIAL_STRING.replace(/^\*97([0-9]*)/, "$1@" + domain);
return NEXT_PROCESSOR;
}
else if(DIAL_STRING.match(/^\*97([0-9]*)/))
{
DIAL_STRING=DIAL_STRING.replace(/^\*97([0-9]*)/, "join@"+domain);
return NEXT_PROCESSOR;
}
else
{
return NEXT_RULE;
}
}
else
{
return NEXT_RULE;
}