Telegram


How can you send/receive Telegram Messages from XCALLY?



Risultati immagini per telegram XCALLY Motion Open Channel offers the integration of Telegram messenger as a New Channel, allowing:

  • the Customers to interact with your Agents sending direct messages to your Telegram Official Account;
  • your Agents to receive the incoming messages on a special Telegram Queue and to reply from the XCALLY Motion standard GUI;

  • the Customers to receive the messages back on Telegram messenger.



Compatibility

The minimum required version of XCALLY Motion is 2.0.81

The integration allows you to exchange text or attachments. To send both text and attachments, you must send more messages



On this page:

Setup Open Channel Account

Below you can find the steps to create an Open Channel Account and an Open Channel Queue:


Open Channel

For more info please refer to the Configure a new OpenChannel account section of this documentation.


  • Create a new Open Channel Account in your XCALLY Motion in the Open Channel Section:



The default Reply URL is http://localhost:3011/sendMessage and you usually don't need to change it. 

But if the 3011 port is already in use (or you want to change it for any other reason), you can modify its value here and also in the configuration file: just before installing the plugin, unzip the files and change the property of the Port variable in the following file: server/config/config.json.

{
	"token" : "{TOKEN}",
	"webhook": "https://{HOSTNAME}/api/plugins/webhook?port=3011&encoding=binary&path=/api/messages",
	"openChannel": {
		"id": "",
		"receiveUrl": "",
		"mapKey": ""
	},
	"authentication": {
		"username": "",
		"password": ""
	},
	"port": "3011"
}

At the end of these changes, zip all the folder files and upload the plugin you modified.


  • Complete the Open Channel account configuration (Disposition, Action, etc)


Don't forget to select telegram (or any other custom field of the Customer profile) as mapKey and add the proper Agents to the account used for Telegram interactions.


  • Create a new Open Channel Queue and then Add Agents to it as well.



Setup Telegram Account


Below you can find the steps to create a Telegram service (bot) and enable its integration with XCALLY Motion:

  • To create a Telegram bot using BotFather
    • Open Telegram
    • Search @BotFather
    • Type /newbot
    • Choose a name for your bot
    • Choose a username for your bot. It must end in 'bot'
    • Save the token to access the HTTP API. We will need it to setup the telegram plugin.



Keep the Token provided by BotFather safe, it will be used later to setup the Telegram Plugin!


Now your Telegram Service is completed!



The next steps will be about how to install and configure the XCALLY Motion Telegram Plugin interface, in order to let your Agents interact with Telegram users.




Installing the Plugin to XCALLY Motion


  • Download the Telegram Plugin zip file:

https://repository.xenialab.com/repository/plugins-legacy/telegram-plugin/telegram-plugin-v1.0.2.zip


  • Login as admin in XCALLY Motion, upload the Telegram Plugin and Install it:


  • After the upload, you will find it in the list of the uploaded App Zone Plugins. :


  • Edit this plugin clicking on the three dots :  

and select in the Sidebar field how/to whom this integration must be shown in the menu (default value: Admin Only):


  • Finally, install the Plugin:

click on  and then you find the proper command:

and at the end the plugin will become Active 



Setup Telegram Plugin

  • Configure the Plugin for Telegram by selecting Telegram integration from the list of Plugins:



  • Insert BOT Token (the one you obtained in previous steps)
  • Select your Open Channel account from the list (as created in the previous step)
  • Insert the admin username and password 
  • Update the Webhook inserting your server name


The webhook URL should follow the format: https://{HOSTNAME}/api/plugins/webhook?port={PORT}&path=/api/messages&token={TOKEN}

  • where {HOSTNAME} is usually your XCALLY hostname or IP address, or the hostname of another server in case you would like to host your integration/application separately.
  • {PORT} is usually 3011, or the specific port you have defined in your Telegram Plugin settings inside XCALLY Motion.
  • {TOKEN} is the Open Channel Account token

Remember to modify the admin password you inserted here anytime you change it!

Pay attention to the Port value: each Port can be associated only to one service. Check if the chosen value has already been assigned to another service.

  • After saving the changes, remember to Restart the Plugin: click on  and you'll find the proper command


Now you can test the communication between the Telegram users (who will write messages to the Telegram Bot you created) and your Agents (who will interact from the XCALLY Omnidesktop Interface)!



Additional Information

Configuring your firewall

If your XCALLY service is hosted behind a firewall then please make sure that the HTTPS port is able to accept incoming requests from Telegram webhook server.

A few suggestions in this regard:

  • Try to find the IP address for Telegram server, that is sending webhook requests to XCALLY, using your preferable network analysis tool.
  • Add the rule to allow incoming traffic from Telegram IP address, on Port 443, in your firewall policy.

-- OR --

Modify the file /etc/sysconfig/iptables and add the following line:

-A INPUT -s 0.0.0.0/0 -p tcp --dport 443 -j ACCEPT

Disclaimer: This method will open port 443 of your XCALLY server for all IP addresses.

-- OR --

Accordingly to the following link https://core.telegram.org/bots/webhooks you can open just the following TCP ports from the specified networks:

149.154.160.0/20

and

91.108.4.0/22

on port 443, 80, 88, or 8443.

Debugging/Troubleshooting

All of the log files for Telegram Messenger plugin events are available at /var/log/xcally/ directory under openchannel-line- naming convention.