2015-09-29 2 views

ответ

0

Создать deliver_sm для этого сообщения и отправить его клиенту.

1

Конечно, вам все равно нужно ответить на PDU SubmitSm с помощью PDU SubmitSmResp, как и сейчас.

Отчет о доставке - это «специальный» PDU DeliverSm, который сгенерирован на вашем SMPP-сервере и отправлен дополнительно вашему клиенту. См. SMPP 3.4 Приложение B, как оно отформатировано (https://github.com/twitter/cloudhopper-smpp/blob/master/src/etc/SMPP_v3_4_Issue1_2.pdf). Вам также необходимо установить esmClass из PDU DeliverSm в 0x04, чтобы указать, что это отчет о доставке.

Если ваш клиент использует привязку приемопередатчика, вы можете использовать тот же сеанс для отправки PDU DeliverSm, иначе вам понадобится сеанс приемника клиентов. Если активный сеанс недоступен, вам необходимо поставить в очередь PDU DeliverSm.

Главный вопрос, когда отправить отчет о доставке. Прежде всего, вы можете отправить только отчет о доставке, если клиент запросил его, установив 4-й бит SubmitSm esmClass.

Хотя, если ваш клиент использует соединение с приемопередатчиком, не отправляйте его непосредственно в обработчик firePduRequestReceived. Клиент может получить его, прежде чем он получит SubmitSmResp. Кроме того, этот отчет о доставке не будет иметь больше ценности, чем сам SubmitSmResp.

Итак, есть три случая, когда вы можете создать этот отчет о доставке и поставить его в очереди, пока вы не надлежащий сеанс от вашего клиента, чтобы отправить его по адресу:

1) Когда вы получаете некоторое внешнее событие, указывающее, что бывший SubmitSm был фактически обработан (например, доставлен) по месту назначения.

2) Когда вы можете переслать SubmitSm на следующий процессор.

3) Когда вы обнаружите какую-либо ошибку или срок действия SubmtSm истек

+0

Большое спасибо, Мартин! – user1647166