--- - 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/" method: GET return_content: true params: number: "{{ sms_number }}" message: "{{ random_string }}" type: "class-1" username: "{{ sms_username }}" password: "{{ sms_password_send }}" 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/" method: GET return_content: true params: username: "{{ sms_username }}" password: "{{ sms_password_recv }}" 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