You're seeing just the function wait_for_pdus, go back to SMPPEX.ESME.Sync module for more information.
Link to this function

wait_for_pdus(esme, timeout \\ 5000)

View Source


wait_for_pdus(esme :: pid(), timeout :: non_neg_integer()) ::
  [awaited()] | :timeout | :stop

Syncronously wait for incoming PDUs. If the ESME already have some received PDUs, they are returned immediately.

The default timeout is 5000 ms.

The result value is :timeout, :stop or a list of the following items:

  • {:pdu, pdu}, where pdu is an incoming PDU;
  • {:resp, resp_pdu, original_pdu} where resp_pdu is an incoming reply for a previously sent original_pdu;
  • {:timeout, pdu} for pdu's which have not received a response within ESME timeout;
  • {:error, pdu, reason} for outcoming PDUs which were not successfully sent due to reason;
  • {:ok, pdu} for outcoming PDUs which were successfully sent.

:timeout returned value indicates that the ESME didn't receive any PDUs within timeout. :stop value indicates that the ESME stopped while waiting for incoming PDUs.