Tactium IP
-
Qual TTS podemos usar para gravar audios na Web?
Podemos recomendar o site chamado https://ttsfree.com/pt.
Nesse site está disponível alguns idiomas e os áudios são gerados no formato *.mp3. A voz que possui uma pronuncia muito boa, já utilizada, é da Francisca, conforme print abaixo, mas no site temos outras opções.

Após gerar os áudios em *.mp3, torna-se necessário a conversão para *.wav com as especificações técnicas da Khomp. Para mais informações sobre a conversão, acesse Convertendo áudios para uso no Tactium IP usando o Audacity.
-
Qual é a ordem de parada e inicialização dos serviços do TactiumIP?
Ao realizar o reinicio do(s) servidor(res) TactiumIP, ou na necessidade de resetar a aplicação, se faz necessário seguir uma ordem de parada e subida dos serviços atrelados ao mesmo:
Ordem de Parada:
1° TactiumIP Server
2° TactiumIP Replication
3° TactiumIP BoardServer
4° Khomp Mrcp (Quando houver)
5° Khomp API
6° Khomp Media
7° Khomp Query
8° Khomp Log
9° Khomp Integrated
Ordem de Inicialização:
2° Khomp Log
3° Khomp Query
4° Khomp Media
5° Khomp API
6° Khomp Mrcp (Quando houver)
7° TactiumIP BoardServer
8° TactiumIP Replication
9° TactiumIP Server (este, impreterivelmente deve ser o ultimo a subir, pois se subir antes do replication, zera o banco de dados)Observação: Em caso de queda de Energia, os serviços que estiverem marcados para subida automática já estarão em execução. Neste caso, basta seguir a ordem de subida pulando os mesmos
-
Criando Jobs do Gerenciador de Mailing
Na implantação do Gerenciador de Mailing do nMonitor, torna-se necessário criar 3 procedures e seus respectivos Jobs no SQL Server Agent, conforme detalhamento abaixo.
⚠️ Atenção: Os scripts abaixo devem ser executados somente por administradores do banco de dados.
Antes de executar, ajuste as variáveis iniciais conforme o ambiente de implantação.🔧 Variáveis de ambiente (ajustar antes da execução)
DECLARE @Sigla VARCHAR (20) = 'SIGLA_AMBIENTE' -- Ex: RGSMGF, TACTIUM, etc. , @Banco VARCHAR (20) = 'DATABASE' -- Nome do banco de dados do discador (base histórica) , @Usuario VARCHAR (20) = 'USUARIO_DATABASE' -- Owner do job , @PathLayout VARCHAR(800) = '\\caminho\para\layout\' -- Apenas para Job 2
📌 Job 1 – Monitora Agendamento de Mailing
Item Descrição Job TACTIUM – Monitora Agendamento de MailingProcedure SP_GeraMailingAgendadoObjetivo Gerar segmentos de mailings para discagem que estejam agendados ou em fila Local de execução Banco do TactiumIP (base histórica) Comando Exec SP_GeraMailingAgendadoPeriodicidade A cada 10 segundos 🧾 Script de criação do Job 1
USE [msdb] GO BEGIN TRANSACTION DECLARE @Sigla VARCHAR (20) = 'SIGLA_AMBIENTE' , @Banco VARCHAR (20) = 'DATABASE' , @Usuario VARCHAR (20) = 'USUARIO_DATABASE' DECLARE @NomeJob VARCHAR(255) = Concat(@sigla, ' - Monitora Agendamento de Mailing') , @NomeEtapa VARCHAR(255) = Concat(@sigla, ' - Gera Mailing Agendado') , @StartDate INT = FORMAT(GETDATE(), 'yyyyMMdd') DECLARE @schedule_uid UNIQUEIDENTIFIER; DECLARE @ReturnCode INT = 0 IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1) BEGIN EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback END DECLARE @jobId BINARY(16) EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=@NomeJob, @enabled=1, @notify_level_eventlog=2, @notify_level_email=2, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'Nenhuma descrição disponível.', @category_name=N'[Uncategorized (Local)]', @owner_login_name=@usuario, @notify_email_operator_name=N'Sac Tactium', @job_id = @jobId OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=@NomeEtapa, @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=N'Exec SP_GeraMailingAgendado', @database_name=@Banco, @flags=0 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Execucao a cada 10 segundos', @enabled=1, @freq_type=4, @freq_interval=1, @freq_subday_type=4, @freq_subday_interval=1, @freq_relative_interval=0, @freq_recurrence_factor=0, @active_start_date=@StartDate, @active_end_date=99991231, @active_start_time=0, @active_end_time=235959, @schedule_uid=@schedule_uid OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback COMMIT TRANSACTION GOTO EndSave QuitWithRollback: IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION EndSave: GO
📌 Job 2 – Transfere Mailing para o Discador
Item Descrição Job TACTIUM – Transfere Mailing para o DiscadorProcedure SP_TransfereParaDiscadorObjetivo Transferir a lista de discagem do gerenciador de mailings para o discador Local de execução Banco do TactiumIP (base histórica) Comando Exec SP_TransfereParaDiscador @PathLayout, @Banco, 0Periodicidade A cada 10 segundos 🧾 Script de criação do Job 2
USE [msdb] GO BEGIN TRANSACTION DECLARE @Sigla VARCHAR (20) = 'SIGLA_AMBIENTE' , @Banco VARCHAR (20) = 'DATABASE' , @Usuario VARCHAR (20) = 'USUARIO_DATABASE' , @PathLayout VARCHAR(800) = '\\caminho\para\layout\' DECLARE @NomeJob VARCHAR(255) = Concat(@sigla, ' - Transfere Mailing para o Discador') , @NomeEtapa VARCHAR(255) = Concat(@sigla, ' - Transfere Mailing para o Discador') , @Comando VARCHAR(800) = Concat('Exec SP_TransfereParaDiscador ''', @PathLayout, ''', ''', @Banco, ''', 0') , @StartDate INT = FORMAT(GETDATE(), 'yyyyMMdd') DECLARE @schedule_uid UNIQUEIDENTIFIER; DECLARE @ReturnCode INT = 0 IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1) BEGIN EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback END DECLARE @jobId BINARY(16) EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=@NomeJob, @enabled=1, @notify_level_eventlog=2, @notify_level_email=2, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'Nenhuma descrição disponível.', @category_name=N'[Uncategorized (Local)]', @owner_login_name=@Usuario, @notify_email_operator_name=N'Sac Tactium', @job_id = @jobId OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=@NomeEtapa, @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=@Comando, @database_name=@Banco, @flags=0 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Execucao a cada 10 segundos', @enabled=1, @freq_type=4, @freq_interval=1, @freq_subday_type=4, @freq_subday_interval=1, @freq_relative_interval=0, @freq_recurrence_factor=0, @active_start_date=@StartDate, @active_end_date=99991231, @active_start_time=0, @active_end_time=235959, @schedule_uid=@schedule_uid OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback COMMIT TRANSACTION GOTO EndSave QuitWithRollback: IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION EndSave: GO
📌 Job 3 – Recebe resultado do Discador
Item Descrição Job TACTIUM – Recebe resultado do DiscadorProcedure SP_RecebeDoDiscadorObjetivo Transferir tentativas realizadas pelo discador para a base do gerenciador de mailings Local de execução Banco do TactiumIP (base histórica) Comando Exec SP_RecebeDoDiscador @BancoPeriodicidade A cada 1 minuto 🧾 Script de criação do Job 3
USE [msdb] GO BEGIN TRANSACTION DECLARE @sigla VARCHAR (20) = 'SIGLA_AMBIENTE' , @banco VARCHAR (20) = 'DATABASE' , @usuario VARCHAR (20) = 'USUARIO_DATABASE' DECLARE @NomeJob VARCHAR(255) = Concat(@sigla, ' - Recebe resultado do Discador') , @NomeEtapa VARCHAR(255) = Concat(@sigla, ' - Recebe resultado do Discador') , @Comando VARCHAR(800) = Concat('Exec SP_RecebeDoDiscador ''', @Banco, '''') , @StartDate INT = FORMAT(GETDATE(), 'yyyyMMdd') DECLARE @schedule_uid UNIQUEIDENTIFIER; DECLARE @ReturnCode INT = 0 IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1) BEGIN EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback END DECLARE @jobId BINARY(16) EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=@NomeJob, @enabled=1, @notify_level_eventlog=2, @notify_level_email=2, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'Nenhuma descrição disponível.', @category_name=N'[Uncategorized (Local)]', @owner_login_name=@usuario, @notify_email_operator_name=N'Sac Tactium', @job_id = @jobId OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=@NomeEtapa, @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=@Comando, @database_name=@banco, @flags=0 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Execucao a cada 1 minuto', @enabled=1, @freq_type=4, @freq_interval=1, @freq_subday_type=4, @freq_subday_interval=1, @freq_relative_interval=0, @freq_recurrence_factor=0, @active_start_date=@StartDate, @active_end_date=99991231, @active_start_time=0, @active_end_time=235959, @schedule_uid=@schedule_uid OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback COMMIT TRANSACTION GOTO EndSave QuitWithRollback: IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION EndSave: GO
✅ Observações finais
- As procedures (
SP_GeraMailingAgendado,SP_TransfereParaDiscador,SP_RecebeDoDiscador) já devem existir no banco de dados do Tactium antes da criação dos Jobs. - Ajuste o parâmetro
@freq_subday_intervalpara 10 segundos manualmente via interface do SQL Server Agent, se necessário, pois o T-SQL padrão não permite menos que 1 minuto diretamente. - O
@PathLayoutdeve apontar para um diretório acessível pelo SQL Server. - O operador de e-mail
Sac Tactiumdeve existir no SQL Server Agent ou pode ser removido/alterado conforme necessidade.
⚠️ Importante: Após criar os jobs, verifique se eles estão habilitados e com as permissões corretas para execução.
- As procedures (
-
Como habilita a função bulkadmin no SQL Server?
Para habilitar essa função torna-se necessário acessar as propriedades do usuário do SQL Server (no exemplo abaixo as configurações estão sendo feitas no usuário chamado “callback”). No menu lateral entrar em “Funções de Servidor” e marcar a opção de “bulkadmin”.

-
Não visualiza os operadores logados na transferência da Toolbar usando integração com o Tactium CRM?
Recomendo verificar no “web.config” da Toolbar o parâmetro abaixo:
<configuration>
<appSettings>
<add key=”transferBPM” value=”false” />Esse parâmetro é para estar desabilitado por se tratar de um recurso descontinuado.Segue imagem ilustrando o problema:

-
Como resolver problemas da tela desconfigurada?
Normalmente esse tipo de problema é ocasionado quando existem mudanças na tela da ferramenta, isto é, quando é criado um novo atributo torna-se necessário executar as seguintes teclas de atalho: Ctrl + shift + r e Ctrl + Shift + F5 que são usadas para recarregar a página sem levar em conta o conteúdo armazenado em cache.
O recomendado é realizar esse procedimento em todas as versões, após suas atualizações.
Segue um exemplo ilustrando esse tipo de problema:

-
Como habilita o alerta de fila na Toolbar?
Para habilitar o alerta de fila da Toolbar torna-se necessário configurar a TAG sinalizada abaixo no arquivo “web.config” da Toolbar.
Por padrão ele já vem configurado como “true”, mas caso deseje desabilitar deve-se colocar como “false”.
<appSettings>
…
<add key=”Toolbar:CheckAgentGroupQueue” value=”true” />…
</appSettings>

-
O que seria o Garbage Collector do Tactium IP, para evitar quedas da Toolbar?
O Garbage Collector tem a finalidade de criar uma proteção na aplicação em caso de possíveis intermitências de rede de conexão com o Tactium IP Server, fazendo com que a aplicação não gere uma desconexão após X segundos (parâmetro configurado). Para configurar acesse o link Configurando o Garbage Collector.
É importante enfatizar que as quedas das aplicações poderão ter diversas causas e para maiores detalhes acesse essa documentação completa para garantir todos os pontos de proteção e configuração: Prevenindo indisponibilidade/ quedas nas ferramentas das soluções Tactium.
-
Quais são as vozes homologadas de TTS no Tactium IP?
No Tactium IP temos as seguintes 3 vozes homologadas, sendo:
- Heloísa (gratuita)
- Ricardo (paga)
- Vitoria (paga)
As vozes pagas precisam ser adquiridas pelo cliente que são através do link abaixo e ambas são da empresa IVONA.
Vitória: https://harposoftware.com/en/portuguese-brasil/165-vitoria-portuguese-brasilian-voice.html
Ricardo: https://harposoftware.com/en/portuguese-brasil/166-ricardo-portuguese-brasilian-voice.html
-
Erro ao vocalizar TTS em “PT-BR” com Windows Server 2019 “ENG-US”
Identificamos que devido aos novos recursos de vocalização do S.O. Windows Server 2019 Inglês, ocorre uma incompatibilidade como o pacote de voz (Heloisa) em Português.
Para resolver esse problema torna-se necessário instalar o pacote de linguagem em português (Windows) e realizar a alteração na opção de linguagem do S.O em configurações. Esse procedimento é realizada na parte de configurações do Windows.

Após instalar, vincular o idioma no S.O. Para aplicar torna-se necessário o reinicio do servidor após o vinculo da linguagem.

