~danielside/smshook

Receptor de peticiones POST de Clicksend inbound SMS
0ab0f797 — danielside 2 months ago
quita debug
f4f9c642 — danielside 2 months ago
borra tarea y simbolo dir
b7261dae — danielside 2 months ago
seleccionar los n últimos

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~danielside/smshook
read/write
git@git.sr.ht:~danielside/smshook

You can also use your local clone with git send-email.

#Desarrollo

Se desarrolla en codigo/nimdev/smshook, se compila en el contenedor, se hace commit y push, y la copia que ve el contenedor de prosody es la de codigo/smshook

#Compilar en el contenedor

/opt/nim-2.0.2/bin/nim c -d:openssl10 -d:ssl  --verbosity\:0 --hint\[Processing\]\:off --excessiveStackTrace\:on clicksend2prosody.nim

#Simular el hook

curl -X POST http://localhost:8080/smshook -d "message_id=1234&message=[test] Hola amigos :) ;) :D :P :* :o :| :/ :("

#Ejemplos

Mensaje:

curl -X POST https://SERVIDOR/rest --user "USER:PASS" -H 'Content-Type: application/xmpp+xml' --data-binary '<message type="chat" to="test@SERVIDOR"><body>Hola</body></message>'

Body para OOB:

<body>URL</body><x xmlns="jabber:x:oob"><url>URL</url></x>

Pedir el historial completo, sin importar el contacto de origen del mensaje

curl -X POST https://SERVIDOR/rest --user "user:pass" -H 'Content-Type: application/xmpp+xml' --data-binary '<iq type="set" id="danielside"><query xmlns="urn:xmpp:mam:2" queryid="f29"><x xmlns="jabber:x:data" type="submit"><field var="FORM_TYPE" type="hidden"><value>urn:xmpp:mam:2</value></field></x></query></iq>'

Historial con mensajes hacia o desde user@server:

curl -X POST https://SERVIDOR/rest --user "user:pass" -H 'Content-Type: application/xmpp+xml' --data-binary '<iq type="set" id="danielside"><query xmlns="urn:xmpp:mam:2" queryid="f29"><x xmlns="jabber:x:data" type="submit"><field var="FORM_TYPE" type="hidden"><value>urn:xmpp:mam:2</value></field><field var="with"><value>user@server</value></field></x></query></iq>'

Historial desde una determinada fecha:

curl -X POST https://SERVIDOR/rest --user "user:pass" -H 'Content-Type: application/xmpp+xml' --data-binary '<iq type="set" id="danielside"><query xmlns="urn:xmpp:mam:2" queryid="f29"><x xmlns="jabber:x:data" type="submit"><field var="FORM_TYPE" type="hidden"><value>urn:xmpp:mam:2</value></field><field var="with"><value>user@server</value></field></field><field var="start"><value>2024-08-07T00:00:00Z</value></field</x></query></iq>'

Últimos mensajes recibidos y enviados (se utiliza paginación de resultados):

curl -X POST https://chat.dnlsd.nom.es/rest --user "user:pass" -H 'Content-Type: application/xmpp+xml' --data-binary '<iq type="set" id="danielside"><query xmlns="urn:xmpp:mam:2" queryid="f29"><x xmlns="jabber:x:data" type="submit"><field var="FORM_TYPE" type="hidden"><value>urn:xmpp:mam:2</value></field><field var="with"><value>familia@chat.dnlsd.nom.es</value></field></x><set xmlns="http://jabber.org/protocol/rsm"><max>10</max><before /></set></query></iq>'

#Notas para parser

Continuamente se están recibiendo stanzas que no son del mensaje completo, son hints. Pero también se guardan en el archivo.

Por ejemplo, llega un mensaje "[Pa] Muy" y luego llega completo "[Pa] Mu bien".

#Instalar

apk add pcre
copiar el binario, configuración y fichero de init

#Test Mam

if isMainModule: var filename = "ejemplos/MamFamiliaLatest10.xml" var s = newFileStream(filename, fmRead)

var archivedMessages: seq[MessageArchived] = parseMamStream(s) for m in archivedMessages: echo "From: " & senderUser(m) echo "To: " & destinationUser(m) echo "Direction: " & $(direction(m)) echo "Text: " & text(m) echo "Timestamp: " & m.timestamp echo "Date and time: " & $(parseTime(m.timestamp, "yyyy-MM-dd'T'HH:mm:sszzz", utc())) echo "Processed dt: " & dateAndTime(m) echo "----------------------------------" close(s)