58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
---
|
|
- name: Send and verify SMS delivery via internet-master.cz
|
|
hosts: localhost
|
|
gather_facts: false
|
|
vars:
|
|
sms_number: "601358865"
|
|
sms_username: "mikrotik"
|
|
sms_password_send: "jdkotzHJIOPWhjtr32D"
|
|
sms_password_recv: "jdkotzHJIOPWhjtr32D"
|
|
sms_wait_seconds: 120 # Wait 2 minutes for delivery
|
|
|
|
tasks:
|
|
- name: Generate random test string
|
|
set_fact:
|
|
random_string: "mikrotik_{{ lookup('password', '/dev/null length=8 chars=ascii_letters') }}"
|
|
|
|
- name: Send SMS message
|
|
uri:
|
|
url: "https://sms.internet-master.cz/send/?number={{ sms_number }}&message=@mikrotik@{{ random_string | urlencode }}&type=class-1&username={{ sms_username }}&password={{ sms_password_send }}"
|
|
method: GET
|
|
return_content: true
|
|
register: send_result
|
|
|
|
- name: Show send API response
|
|
debug:
|
|
var: send_result.content
|
|
|
|
- name: Wait for SMS to be delivered
|
|
pause:
|
|
seconds: "{{ sms_wait_seconds }}"
|
|
|
|
- name: Fetch received messages
|
|
uri:
|
|
url: "https://sms.internet-master.cz/receive/?username={{ sms_username }}&password={{ sms_password_recv }}"
|
|
method: GET
|
|
return_content: true
|
|
register: recv_result
|
|
|
|
- name: Parse received JSON
|
|
set_fact:
|
|
inbox: "{{ recv_result.json.inbox | default([]) }}"
|
|
|
|
- name: Check if random string message was received
|
|
set_fact:
|
|
message_found: "{{ inbox | selectattr('message', 'equalto', random_string) | list | length > 0 }}"
|
|
|
|
- name: Report result
|
|
debug:
|
|
msg: >
|
|
SMS with message '{{ random_string }}' was {{
|
|
'delivered ✅' if message_found else 'NOT delivered ❌'
|
|
}}.
|
|
|
|
- name: Fail if not delivered
|
|
fail:
|
|
msg: "Message '{{ random_string }}' not found in received inbox!"
|
|
when: not message_found
|