Página 9 de 10
Chamada HTTP para envio de SMS
Enviado: 27 Mar 2016 12:14
por asimoes
A comunicação com o modem daruma min210 para envio de sms é feita pela dll DarumaFrameWork.dll?
Alguém tem algum exemplo em harbour para testes?
Chamada HTTP para envio de SMS
Enviado: 27 Mar 2016 12:51
por Eros
E possível usar o modem daruma utilizando o observer.exe e gerando arquivo texto da mensagem, chamado daruma.cmd. E a forma mais eficiente e simples.
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 08:11
por ANDRIL
sygecom escreveu:Qual operado você indica para usar com o modem da Daruma?
Até o ano passado, indicava VIVO com plano SMSLIVRE. Como começou a bloquear os chips e as demais já não tinha como usar devido a bloqueios também, então não há hoje uma operadora que cumpra o que diz "SMS ILIMITADO" no Brasil. Então não há oque indicar. Independente de ser modem Daruma, modem 3g, ou celular o que barra são justamente as operadoras.
Ate+
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 09:13
por asimoes
Andril,
Então chego a conclusão que é uma solução arriscada se for usada como ferramenta essencial de comunicação.
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 09:41
por ANDRIL
asimoes escreveu:solução arriscada
Isso sempre foi, devido as operadoras nem sempre prestarem o serviço prometido e cumprir com seus planos vendidos. O que acontece na real é voce desenvolver o software mesmo com tudo que já sabemos: 3sg ou mais entre SMS, não repetir as mensagens colocar ., para diferencia-las, pausar alguns segundos entre uma quantidade de envio e etc, ou seja, não importa o que tentamos colocar no software para burlar a operadora, elas acabarão arrumando um jeito de bloquear o envio. Então voce precisa estar preparado para acompanhar os envios, verificando como o bloqueio esta ocorrendo e correr atrás de uma solução temporária, isso requer tempo e alguém especializado para tratar disso.
Além do mais, as operadoras sempre arrumam um jeitinho de descontar o valor além do combinado. Em testes que fiz com a VIVO, eles tiveram a coragem de bloquearem o Chip e descontarem a cada 7 dias o meu SMSLIVRE mesmo sem poder utilizar e muito menos cancelar o plano para evitar o desconto progressivo. Aliás, abri até uma reclamação no site-fórum da operadora e como já havia de esperar nenhum respaldo, nenhuma resposta satisfatória por mínima que seja. Acho que pensam, já compraram o pacote já estamos descontando mesmo, fazer oque?
https://forum.vivo.com.br/threads/5460- ... #post17618
Por isso desisti de usar por meios próprios e comecei a integrar o serviço de SMS aos meus sistemas. Me livrei de vez com essa preocupação que ao iniciar nosso projeto, achavamos a "galinha dos ovos de ouro" já pensou, pagar R$ 0,50 ao dia e mandar quantos SMS precisasse... que furada, foi só tempo gasto com desenvolvimento, dinheiro gasto com pessoal, equipamento e planos.
Mais cada um tem seu ponto de vista, fica aqui como uma experiência que tivemos, cada um poderá vivenciar a sua e postar aqui para os demais.
Até+
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 09:47
por rochinha
Amiguinhos,
Tudo depende do que se necessita fazer.
Se o intuíto é enviar SMS em massa a esmo ou lista anônima a operadoras devem realmente barrar pois seus usuários não vão ficar recebendo mensagens de tarô, horóscopo, notícias indesejadas etc. 150 SMS por dia são realmente muito pouco para um B2B.
Se o intuíto é manter a equipe de vendas na ativa a empresa precisa fazer um plano com a operadora obrigando-a a enviar resposta de cada mensagem afim de contabilizar o pacote.
Se o intuíto é comunicação entre filiais o modem Daruma permite este recurso utiizando o link ponto a ponto.
De outra forma, fica mais em conta manter planos que tenha internet no pacote e manter acesso móbile ao site de conversação com a empresa afim de manter ativos os contatos.
Outrosim, é usar o WhatsApp desktop na central e uma pessoa ser encarregada do disparo de mensagens e afunilamento das conversas.
O que não falta são soluções, então é ver o que facilita.
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 10:44
por asimoes
Rochinha,
Obrigado pelas informações.
No nosso caso estamos estudando a possibilidade de usar esta solução de comunicação no setor financeiro da prefeitura, o intuito é avisar aos fornecedores que o pagamento da fatura está disponível. Ainda não temos a informação de demanda diária de aviso de pagamento, talvez iremos optar por uma solução aplicativo googleplay que está em homologação.
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 11:01
por ANDRIL
Resumindo um pouco, cito o METRÔ-SP que envia aviso sobre problemas em suas operações, quase todo dia há um problema e quase nunca recebo suas mensagens, quando a recebo geralmente o problema já foi corrigido. Isso por que eles utilizam empresas HOMOLOGADAS e AUTORIZADAS junto as operadoras, quem dirá envios não autorizados.
rochinha escreveu:pois seus usuários não vão ficar recebendo mensagens de tarô, horóscopo, notícias indesejadas etc.
Claro, a não ser as delas próprias.
rochinha escreveu:empresa precisa fazer um plano com a operadora obrigando-a a enviar resposta de cada mensagem afim de contabilizar o pacote
Caso uma empresa precise do serviço de SMS deverá contratar alguma das empresas já HOMOLOGADAS por elas, não há outra forma, a não ser os pacotes que conhecemos com "limites encobertos". Obrigar a operadora enviar resposta? Se pudesse obrigar a elas pelo menos entregar ao destinatário já estaríamos por satisfeitos. E até mesmo usando modem, tem comandos específicos e dependerá de qual operadora para poder comunicar esse recebimento.
rochinha escreveu:WhatsApp desktop na central
Talvez hoje, seja uma forma mais viável. Se tivessemos como integrar nossos aplicativos à ele seria o ideal.
Ate+
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 16:48
por rubens
Boa tarde...
Para quem precisa de enviar pouco SMS por mês pode usar a solução da easysms, eu fiz um projetinho com eles e eh bem fácil de implementar.
Código: Selecionar todos
FUNCTION ENVIARSMS(dDATA,cHORA,cCLIENTE,cSERVICO,nIDTECNICO)
LOCAL cTOKEN :='?????????????????????????????????'
LOCAL oHTTP, oURL,cURL
LOCAL oQUERY
LOCAL cQUERY
LOCAL oROW
LOCAL cIDTECNICO := ALLTRIM(STR(nIDTECNICO))
cQUERY := "SELECT * FROM TECNICOS WHERE ID = "+cIDTECNICO
oQUERY := oSERVER:QUERY( cQUERY )
oROW := oQUERY:GETROW(1)
cTECNICO := oROW:FIELDGET(2)
cCEL := oROW:FIELDGET(3)
oQUERY:DESTROY()
cMSG := 'CLIENTE:'+ALLTRIM(cCLIENTE) +;
' DATA: '+dDATA +;
' HORA: '+cHORA +;
' SERVICO: '+ ALLTRIM( cSERVICO )
//-- NECESSARIO PARA QUE A MENSAGEM NAO SEJA CORTADA AO ENCONTRAR O PRIMEIRO ESPACO
cMSG := STRTRAN(cMSG," ","%20")
cUrl:="http://www.easysms.net.br/autoenvio.php?token="+alltrim(cToken)+"&cel="+alltrim(cCel)+";&msg="+cMsg
oHttp:= TipClientHttp():New( cUrl )
oHttp:open()
cRet:=oHttp:readAll()
oHttp:close()
cReto:=If( empty(cRET),'Não enviado',strtran(upper(cRet),"<BR>"," ") )
IF EMPTY( cRET )
MSGINFO( cRETO )
ELSE
MsgInfo('Mensagem enviada para:'+HB_EOL()+ALLTRIM(cRETO))
ENDIF
RETURN NIL
Rubens
Chamada HTTP para envio de SMS
Enviado: 28 Mar 2016 17:08
por asimoes
Olá Rubens,
Obrigado por compartilhar com a agente.
Só para entender o conteúdo da variável
cResposta:=StrTran(Upper(oServerWS:responseBody), "<BR>", " ")
Eu fiz o meu cadastro na easysms e consegui enviar sms, o problema é você ficar dependente de terceiros
Código: Selecionar todos
oServerWS := Win_OleCreateObject("MSXML2.ServerXMLHTTP")
cToken:='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
cCel :='21999999999'
cMsg := 'Alexandre Simoes - teste envio SMS com harbour'
cData := hb_DTOC(Date(), "DD-MM-YYYY")
cUrlWS :="http://www.easysms.net.br/autoenvio.php?token="+alltrim(cToken)+"&cel="+alltrim(cCel)+";&msg="+cMsg+"&dt="+cData
oServerWS:open("GET", cUrlWS, .F.)
oServerWs:Send()
DO WHILE oServerWS:readyState <> 4
oServerWS:WaitForResponse( 500 )
ENDDO
cResposta:=StrTran(Upper(oServerWS:responseBody), "<BR>", " ")
hwg_MsgInfo(cResposta, "Info SMS")
Chamada HTTP para envio de SMS
Enviado: 05 Abr 2016 16:53
por asimoes
Pessoal,
Eu adquiri o modem da daruma min210b (usb)
Fiz um programa em harbour para enviar sms e consegui sucesso.
Neste exemplo dispensa o uso o observer que eu não consegui sucesso de uso.
Segue o código:
Código: Selecionar todos
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "hbdyn.ch"
#include "hbthread.ch"
#include "hbhrb.ch"
#include "common.ch"
#include "error.ch"
#include "hboo.ch"
#include "inkey.ch"
#include "hbver.ch"
FUNCTION MAIN(cTeste)
LOCAL hLib, nStatus
hLib := hb_LibLoad( "DarumaFrameWork.dll" )
nStatus := hb_dynCall( { "eInicializar_MODEM_DarumaFramework", hLib, HB_DYN_CALLCONV_STDCALL})
IF nStatus = 1
hwg_MsgInfo("Modem iniciado com sucesso", "Modem Daruma")
ENDIF
nStatus := hb_dynCall( { "tEnviarSms_MODEM_DarumaFramework", hLib, HB_DYN_CALLCONV_STDCALL}, "21984723382", "teste envio com harbour")
IF nStatus = 1
hwg_MsgInfo("Mensagem enviada com sucesso", "Modem Daruma")
ENDIF
hb_libFree( hLib )
RETURN NIL
INIT FUNCTION AppSetup()
ANNOUNCE hwg_ErrSys
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
REQUEST HB_CODEPAGE_PTISO
HB_LANGSELECT("PT")
HB_CDPSELECT( "PT850" )
//HB_CDPSELECT( "PTISO" )
REQUEST DBFNTX
REQUEST DBFCDX
RddSetDefault("DBFCDX")
SET TYPEAHEAD TO 0
SET INTENSITY ON
SET SCOREBOARD OFF
SET DELETED ON
SET SAFETY OFF
SET DATE ANSI
SET ESCAPE ON
SET DATE FORMAT "DD/MM/YY"
SET DELIMITERS TO
SET EXCLUSIVE OFF
SET WRAP ON
SET EPOCH TO 1920
SET OPTIMIZE ON
SET AUTOPEN ON //OFF
SET DBFLOCKSCHEME TO DB_DBFLOCK_CLIPPER
SET MESSAGE TO 24 CENTER
Set( _SET_EVENTMASK, INKEY_ALL - INKEY_MOVE )
hb_gtReload( "WVT" )
SetColor("W+/B")
CLS
SetColor("W+/B")
IniciaJanela()
RETURN Nil
FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
LOCAL oCrt
HB_Default(@nLi,0)
HB_Default(@nCi,0)
HB_Default(@nLf,MaxRow())
HB_Default(@nCf,MaxCol())
cTituloJanela:="Teste Envio SMS Com Modem Daruma Min210B"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
HB_gtInfo(HB_GTI_STDERRCON, .T. )
HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
RETURN Nil
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVG
REQUEST HB_GT_WGU
REQUEST HB_GT_WVT
RETURN Nil
Chamada HTTP para envio de SMS
Enviado: 05 Abr 2016 17:16
por asimoes
Recebendo sms com modem daruma:
Código: Selecionar todos
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "hbdyn.ch"
#include "hbthread.ch"
#include "hbhrb.ch"
#include "common.ch"
#include "error.ch"
#include "hboo.ch"
#include "inkey.ch"
#include "hbver.ch"
FUNCTION MAIN(cTeste)
LOCAL hLib, nStatus
hLib := hb_LibLoad( "DarumaFrameWork.dll" )
nStatus := hb_dynCall( { "eInicializar_MODEM_DarumaFramework", hLib, HB_DYN_CALLCONV_STDCALL})
IF nStatus = 1
hwg_MsgInfo("Modem iniciado com sucesso", "Modem Daruma")
ENDIF
//nStatus := hb_dynCall( { "tEnviarSms_MODEM_DarumaFramework", hLib, HB_DYN_CALLCONV_STDCALL}, "21994304249", "teste envio de sms com harbour via modem daruma min210b usando chip sim da oi")
sIndiceSMS:=Space(5)
sNumFone :=Space(15)
sData :=Space(10)
sHora :=Space(10)
sMsg :=Space(500)
nStatus := 1
DO WHILE nStatus > 0
sIndiceSMS:=Space(5)
sNumFone :=Space(15)
sData :=Space(10)
sHora :=Space(10)
sMsg :=Space(500)
nStatus := hb_dynCall( { "rReceberSms_MODEM_DarumaFramework", hLib, HB_DYN_CALLCONV_STDCALL}, @sIndiceSMS,;
@sNumFone,;
@sData,;
@sHora,;
@sMsg)
? sIndiceSMS
? sNumFone
? sData
? sHora
? sMsg
Inkey(0)
ENDDO
hb_libFree( hLib )
RETURN NIL
INIT FUNCTION AppSetup()
ANNOUNCE hwg_ErrSys
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
REQUEST HB_CODEPAGE_PTISO
HB_LANGSELECT("PT")
HB_CDPSELECT( "PT850" )
//HB_CDPSELECT( "PTISO" )
REQUEST DBFNTX
REQUEST DBFCDX
RddSetDefault("DBFCDX")
SET TYPEAHEAD TO 0
SET INTENSITY ON
SET SCOREBOARD OFF
SET DELETED ON
SET SAFETY OFF
SET DATE ANSI
SET ESCAPE ON
SET DATE FORMAT "DD/MM/YY"
SET DELIMITERS TO
SET EXCLUSIVE OFF
SET WRAP ON
SET EPOCH TO 1920
SET OPTIMIZE ON
SET AUTOPEN ON //OFF
SET DBFLOCKSCHEME TO DB_DBFLOCK_CLIPPER
SET MESSAGE TO 24 CENTER
Set( _SET_EVENTMASK, INKEY_ALL - INKEY_MOVE )
hb_gtReload( "WVT" )
SetColor("W+/B")
CLS
SetColor("W+/B")
IniciaJanela()
RETURN Nil
FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
LOCAL oCrt
HB_Default(@nLi,0)
HB_Default(@nCi,0)
HB_Default(@nLf,MaxRow())
HB_Default(@nCf,MaxCol())
cTituloJanela:="Teste Envio SMS Com Modem Daruma Min210B"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
HB_gtInfo(HB_GTI_STDERRCON, .T. )
HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
RETURN Nil
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVG
REQUEST HB_GT_WGU
REQUEST HB_GT_WVT
RETURN Nil
Chamada HTTP para envio de SMS
Enviado: 05 Abr 2016 18:37
por asimoes
Listar mensagens recebidas de um telefone:
Será gerado o arquivo ListsSmsTelefones.txt
Ex.:
Código: Selecionar todos
[[2 ][REC READ ][+5521984723382 ][16/04/05][17:26:13][Recebi]]
[[3 ][REC UNREAD][+5521984723382 ][16/04/05][18:03:54][Ok]]
[[4 ][REC UNREAD][+5521984723382 ][16/04/05][18:19:33][Tem]]
iRetorno := hb_dynCall( { "rListarSMSTelefone_MODEM_DarumaFramework", hLib, HB_DYN_CALLCONV_STDCALL}, '+5521984723382')
Chamada HTTP para envio de SMS
Enviado: 05 Abr 2016 18:40
por asimoes
Listar todas as mensagens sms do telefone
Será gerado o arquivo ListaSms.txt
Ex.:
Código: Selecionar todos
[[1 ][REC READ ][+5521XXXXXXXXX ][16/04/05][16:58:08][Chato....]]
[[2 ][REC READ ][+5521984723382 ][16/04/05][17:26:13][Recebi]]
[[3 ][REC UNREAD][+5521984723382 ][16/04/05][18:03:54][Ok]]
[[4 ][REC UNREAD][+5521984723382 ][16/04/05][18:19:33][Tem]]
iRetorno := hb_dynCall( { "rListarSms_MODEM_DarumaFramework", hLib, HB_DYN_CALLCONV_STDCALL})
Chamada HTTP para envio de SMS
Enviado: 05 Abr 2016 22:48
por sygecom
Muito bom e obrigado por compartilhar.