2015-04-14 4 views
0

Я использую реализацию CAP для мобильных приложений для создания приложения CAP для зарядки CAMEL; мое приложение работает нормально, и я могу отправлять и получать сообщения между SSF и SCF. Что я ищу: как его обнаружить, была нарушена связь SCTP между клиентом и сервером? Потому что, когда я намеренно останавливаю сервер и поддерживаю работу клиента, при отправке CAPDialog не возникает никаких ошибок.Как обнаружить отказ SCTP-соединения

Когда я остановить сервер, на консоли я вижу следующее исключение:

2015-04-14 13:15:29,669 [Thread-0 ] ERROR org.mobicents.protocols.sctp.SelectorThread - Exception while finishing connection for Association=clientAsscoiation 
java.net.ConnectException: Connection refused: no further information 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source) 
    at org.mobicents.protocols.sctp.SelectorThread.finishConnectionTcp(SelectorThread.java:407) 
    at org.mobicents.protocols.sctp.SelectorThread.finishConnection(SelectorThread.java:368) 
    at org.mobicents.protocols.sctp.SelectorThread.run(SelectorThread.java:151) 
    at java.lang.Thread.run(Unknown Source) 

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

OAnswerSpecificInfo oAnswerSpecificInfo = this.getCapProvider().getCAPParameterFactory().createOAnswerSpecificInfo(null, 
        false, false, null, null, null); 
ReceivingSideID legID = this.getCapProvider().getCAPParameterFactory().createReceivingSideID(LegType.leg2); 
MiscCallInfo miscCallInfo = this.getCapProvider().getINAPParameterFactory().createMiscCallInfo(MiscCallInfoMessageType.notification, null); 
EventSpecificInformationBCSM eventSpecificInformationBCSM = this.getCapProvider() 
        .getCAPParameterFactory() 
        .createEventSpecificInformationBCSM(oAnswerSpecificInfo); 

CAPDialogCircuitSwitchedCall capDialog = (CAPDialogCircuitSwitchedCall) getCapProvider().getCAPDialog(localDialogId); 

capDialog.addEventReportBCSMRequest(EventTypeBCSM.oAnswer, eventSpecificInformationBCSM, legID, miscCallInfo, null); 
capDialog.setUserObject(getParamAsString("referenceId")); 
capDialog.setReturnMessageOnError(true); 
capDialog.send(); 

ответ

1

«capDialog.send();» код не возвращает обратно ошибку, даже если какая-либо базовая ссылка SS7 не работает.

Если у вас есть доступ к стеку SCTP, вы можете проверить, подключено ли соединение SCTP вверх или вниз: Association association = ...; association.isConnected();

+0

Я вижу, проверим пожалуйста. – Waqas

Смежные вопросы