<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><div><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style> <style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style> <style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
</style><p><span style="font-size: 11pt;"><strong>In this guide we will cover:</strong></span></p><p><span style="font-size: 11pt;"><strong>- Web Client Method</strong></span></p><p><span style="font-size: 11pt;"><strong>- CRM Template Method</strong></span></p><p><span style="font-size: 11pt;"><strong>- Desktop Softphone Method</strong></span></p><p><br></p><p><br></p><p><span style="font-size: 11pt;">Halo can display incoming call pop-ups, place outgoing calls, and display the call handling screen when a call is accepted in 3CX.</span></p><p><strong><span style="font-size: 11pt; color: rgb(184, 49, 47);">After recent changes by 3CX the below methods only work on Pro and Ent (Professional and Enterprise) versions of 3CX</span></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">Method 1 - Web Client (Pro and Enterprise versions only)</span></strong><span style="font-size: 14pt;"> </span></p><p><span style="font-size: 11pt;">This should be set up in the 3CX web application for connecting with the Halo Web App. </span></p><p><br></p><p id="isPasted"><span style="font-size: 11pt;">The Open Contact URL would be https:// followed by your Halo Web App URL followed by the /call?<strong>inboundactive=true</strong>&callerid=%CallerNumber% as seen in the below screenshot. </span></p><p><br></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ5YTY3MzczLWMzNTItNGMwZi1iNGJlLTU2ZmM2ZmYzM2NkZSJ9.Ek29PkQ-DO5f4PEpOYXOaOoMNeov67gT1WUSBzYW-yM" class="fr-fic fr-fil fr-dii" width="185" style="width: 187px; height: 531.574px;" height="532"></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMwOGRlNmEzLTAxMTktNDU3Mi1hMTQ1LTAxNDMyNmE4OTM2ZiJ9.vop1bWRwwaS-z9nzR9Xq4nNK1_o8QyfospvM0LLcFnU" class="fr-fic fr-fil fr-dib" width="748" style="width: 750px; height: 510.471px;" height="510"></p><p><br></p><p><br></p><p><strong><span style="font-size: 10pt;">Fig 1. Setting the URL.</span></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">Method 2 - </span></strong><span style="font-size: 14pt;"><strong>Using the CRM Template for 3CX (Pro and Enterprise versions only, 3CX v20+)</strong></span></p><p><a href="https://www.3cx.com/blog/releases/crm-template-generator-pbx/">https://www.3cx.com/blog/releases/crm-template-generator-pbx/</a> </p><p><br></p><p><span style="font-size: 11pt;">This method shows a contact card when a call is incoming and uses the Halo API to get the caller's information to display a link to open the call screen</span></p><p><br></p><p><span style="font-size: 11pt;">An example XML for this is attached, please log in to the self-service portal to view the attachment here: <a href="https://support.haloservicedesk.com/portal/kb?id=1254" target="_blank" rel="noopener noreferrer"><strong>Portal Link</strong></a>. The below screenshot shows the parts of the XML you will need to change.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQxMzAwYjBkLTBmMzktNGQ4Mi1iMDljLTc0ZGMzYTE1OGY2NCJ9.y_L8hA2qpxPB_PVNt3TfWzE852l5WTAE4urODCC4BX8" class="fr-fic fr-fil fr-dib" width="1224" style="width: 1226px; height: 568.79px;" height="569"></p><p><strong><span style="font-size: 10pt;">Fig 2. XML.</span></strong></p><p><br></p><p><span style="font-size: 12pt;"><strong>Login Redirect URL</strong></span></p><p><span style="font-size: 11pt;">https://YOUR3CXURL/api/oauth2crm is the login redirect URL you will need to set up when you add the application using the Authorisation code option.</span></p><p><br></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: Roboto; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNDM1N2ZiLTJkNmItNDgyZC05MjllLWI3MzlkOTU1M2JlNCJ9.3o_OYnP2ozpf3MZCwag1ayXJAW1zqF4IPGDqTuvntzs" class="fr-fic fr-fil fr-dib" width="1164" style="width: 1164px; height: 621.578px;" height="621.578"></p><p><strong><span style="font-size: 10pt;">Fig 3. Redirect URL.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">The scope of the API Application can be set to "All".</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIzNGVlYTU2LWYyZmUtNGJmZS05NGVmLTFkZWUzZmI5NDQ4YyJ9.B0kybbP6XY0jJUvk_62Hk_2vkUrT0HjXluGOTg6SVcM" class="fr-fic fr-fil fr-dib" width="1082" height="213"></p><p><strong><span style="font-size: 10pt;">Fig 4. Permissions.</span></strong></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The whitelisted url should be your 3cx url: <a href="https://your3cxurl/">https://your3cxurl/</a>.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMyYmMzMGQ4LWUxZWUtNDQ2Ni1iNTU0LTc0NjU2MzE5NjQ5MiJ9.hnXws8n0hi601Y2OFW-BzUhSM_s7JHs_hbyyO_uG9JM" class="fr-fic fr-fil fr-dib" width="1069" height="562"></p><p><span style="font-size: 11pt;">An alternative template, created by the HaloPSA customer community, can be found </span><span style="font-size: 11pt;"><a href="https://github.com/O-IT/3CX-HaloPSA-CRM" target="_blank" rel="noopener noreferrer">here</a></span></p><p><br></p><p><strong><span style="font-size: 10pt;">Fig 5. Whitelisting.</span></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">Method </span></strong><span style="font-size: 14pt;"><strong>3 </strong><strong>- Desktop softphone client (Pro and Enterprise versions only)</strong></span></p><p><span style="font-size: 11pt;">Open the desktop client.</span></p><p><br></p><p id="isPasted" style="box-sizing: inherit; margin: 0cm; line-height: 1.4285em; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 15px; font-family: Calibri, sans-serif;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzNWYxODUyLTA0MTUtNGE0Yi05M2EzLTM3ZDNkMjI5ZTVhMSJ9.Y3JRUHxY3Y6u9--sZbig9VY_5FykERH6iNq5qhO4Ero" class="fr-fic fr-fil fr-dii" width="292" height="529"><br></p><p style="box-sizing: inherit; margin: 0cm; line-height: 1.4285em; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 15px; font-family: Calibri, sans-serif;"><br style="box-sizing: inherit;"></p><p style="box-sizing: inherit; margin: 0cm; line-height: 1.4285em; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 15px; font-family: Calibri, sans-serif;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjZDdhY2FkLWFmMmEtNDBhMS05MTdhLTVlODMwOTRiNjY3NCJ9.aIpSx-5YjaS4YkK5FdpNFGf_F12C7FV72art85YIrpw" class="fr-fic fr-fil fr-dib" width="493" height="616"></p><p><br></p><p><strong><span style="font-size: 10pt;">Fig 6. Setting the URL.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">After a recent change made by 3CX, the 3CX Softphone Windows Desktop app downloaded from the Windows App Store now only accepts a link to an executable when receiving a phone call. You can therefore create a bat script that can be run to open your browser of choice with the Halo call link. Please find an example below:</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRkOTRlODBhLWVlYzYtNDg0Ni1hZTAxLTI3YjVkZWU4YTMyNiJ9.M09PXahGRXl-i3XGCCpblnjZn2rc-GJbZ4JMrkJVMa4" class="fr-fic fr-fil fr-dib" width="617" height="57"></p><p><br></p><div id="isPasted" style="color: #000000;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><span style="color: #000000;">@</span><span style="color: #0000ff;">echo</span><span style="color: #000000;"> </span><span style="color: #0000ff;">off<br>start</span><span style="color: #000000;"> msedge </span><span style="color: #a31515;">"https://<<your-halo-url>>/call?showmenu=true&callerid=%1"</span></div><p><br></p><p><span style="font-size: 11pt;">You can then specify a link in the new 3CX app.</span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjFmMGQ0MzRlLTVhMzUtNDFmNC1hYzc3LTc5MDUwMDcxOTNmNCJ9.8jjMnibvkM7Faojg8u6v67RifN3YZf8O4QjXhRiv6M4" class="fr-fic fr-fil fr-dib" width="487" height="733" style="width: 487px;"></p><p><span style="font-size: 10pt;"><strong>Fig 7. Setting a link.</strong></span></p><p><br></p><p><span style="font-size: 11pt;">You may also find that it is possible to use the full URL as an argument in the 3CX desktop client, meaning you can have:</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Path to executable: C:\Program Files\Google\Chrome\Application\chrome.exe (for example; replace with browser of your choice)</span></p><p><span style="font-size: 11pt;">Parameters to Send: <a data-fr-linked="true" href="https://myurl.halopsa.com/call?inboundactive=true&callerid=%CallerNumber%">https://myurl.halopsa.com/call?inboundactive=true&callerid=%CallerNumber%</a></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This then calls the browser with the correct URL, without needing to create or launch and ‘external’ application or bat file.</span></p></div>