To receive notification of incoming SMS messages, you must first write the register_message_filter_listener command (with the port parameter defined) to the SMS control object. Because this is a server object, to observe the response, you must force the shell to keep the file descriptor open. In the following example, we use the exec command to do this, then direct the response messages to stderr:
# (exec 3<> /pps/services/cellular/sms/control_private?wait && cat >&3 && sleep 1 && cat <&3)<<END > msg::register_message_filter_listener > id::1111 > dat:json:{"port":-559038737} > END
If the message registration command is successful, the response is:
@control_private res::register_message_filter_listener id::1111 dat:json:{"messageFilterId":0} success:b:true
When an SMS message is received, the SMS service publishes the message details to this same PPS object:
@control_private msg::receive_message dat:json:{"messageId":1,"senderAddress":"+nnnnnnnnnnn", "payload":"Hello from QNX","encoding":"utf-8","class":4, "serviceCenterTimeStamp":"1427464858000","totalSegments":1, "receivedSegments":1}
Here, nnnnnnnnnnn is an actual phone number, including the country code and area code.
The logging information shows the following:
Mar 27 09:59:19.859 qwf_cellular_services.2515004 high_rate 3110 process_register_message_filter_listener: SMS_Service: processing SMS Client Registration register_message_filter_listener [ PPS ID=1111 ] to SMS Client with name=@control_private. 1821068828734 Mar 27 09:59:19.859 qwf_cellular_services.2515004 high_rate 3110 process_register_message_filter_listener: SMS_Service: Sender Address=[0] Mar 27 09:59:19.859 qwf_cellular_services.2515004 high_rate 3110 process_register_message_filter_listener: SMS_Service: Payload Regex=[0] Mar 27 09:59:19.860 qwf_cellular_services.2515004 high_rate 3110 process_register_message_filter_listener: SMS_Service: port=-559038737 Mar 27 09:59:19.860 qwf_cellular_services.2515004 high_rate 3110 process_register_message_filter_listener: SMS_Service: Substring - None Mar 27 10:01:01.546 qwf_crm_telit.2543682 high_rate 1011 SmsDecodeUserData: message payload: 48 65 6C 6C 6F 20 66 72 6F 6D 20 51 4E 58 <14 bytes> Mar 27 10:01:01.546 qwf_crm_telit.2543682 low_rate 1011 QWF_TR LP_SMS_RCVD Mar 27 10:01:01.546 qwf_cellular_services.2515004 high_rate 3110 QWF_TR process_downlink_sm: SMS_Service: Processing downlink SMS message Mar 27 10:01:01.546 qwf_cellular_services.2515004 high_rate 3110 QWF_TR send_receive_message: SMS_Service: Delivering MT SM to client [1821068828734]