Как я писал в последнем ответе, правильный поток должен начинаться со сценария CER / CEA.Вы (как клиент) отправляете CER, должны принять CEA (с сервера).Только тогда отправляйте все остальные сообщения.
Я предполагаю, что теперь вы отправляете CER + CCR, вы получаете обратно CEA, но только теперь сервер готов к получению CCR.
Вы должны отправить CER и ждать CEA и только после этого отправлятьCCR.Вот ваш CER с ожиданием CEA:
<init>
<send channel=\"channel-1\">
<command name=\"CER\">
<avp name=\"Session-Id\" value=\"test-seesion\"> </avp>
<avp name=\"Auth-Application-Id\" value=\"16777238\"> </avp>
<avp name=\"Origin-Host\" value=\"sp-test-host\"> </avp>
<avp name=\"Origin-Realm\" value=\"sp-test-host-realm\"> </avp>
<avp name=\"Destination-Realm\" value=\"sp-test-dest-realm\"> </avp>
<avp name=\"CC-Request-Type\" value=\"{str(self.request_type_value_dict[message])}\"> </avp>
<avp name=\"CC-Request-Number\" value=\"0\"> </avp>
<avp name=\"Destination-Host\" value=\"sp-test-dest-host\"> </avp>
<avp name=\"Origin-State-Id\" value=\"1505899589\"> </avp>
<avp name=\"Subscription-Id\">
<avp name=\"Subscription-Id-Type\" value=\"0\"> </avp>
<avp name=\"Subscription-Id-Data\" value=\"{self.subscriber_id}\"> </avp>
</avp>
<avp name=\"Subscription-Id\" value=\"\">
<avp name=\"Subscription-Id-Type\" value=\"1\"> </avp>
<avp name=\"Subscription-Id-Data\" value=\"250016371458760\"> </avp>
</avp>
<avp name=\"Framed-IP-Address\" value=\"{self.ip_address[1]}\"> </avp>
<avp name=\"Vendor-Id\" value=\"11\"> </avp>
<avp name=\"Product-Name\" value=\"HP\"> </avp>
<avp name=\"Supported-Vendor-Id\" value=\"10415\"> </avp>
<avp name=\"Vendor-Specific-Application-Id\">
<avp name=\"Vendor-Id\" value=\"10415\"></avp>
<avp name=\"Auth-Application-Id\" value=\"4\"></avp>
</avp>
<avp name=\"Firmware-Revision\" value=\"1030006\"></avp>
</command>
</send>
<receive channel="channel-1">
<command name="CEA">
</command>
</receive>
</init>
Еще один вариант (который мне нравится меньше) - просто ждать.Вы можете добавить между запросами:
<wait-ms value="20000"></wait-ms>
Это заставит ваш скрипт ждать перед отправкой запросов
Даже если похоже, что вы уже работаете с протоколом Diameter, я рекомендую пройти черезДиаметр учебник (или лучше RFC 3588), так как вы также можете столкнуться с другими проблемами, такими как WDR с сервера или неправильные переходы за переходом / сквозной заголовок
Удачи