RestComm / jss7

RestComm Java SS7 Stack and Services
http://www.restcomm.com/
GNU Affero General Public License v3.0
178 stars 218 forks source link

Adding message class for connection-oriented SCCP messages #239

Closed vmykhailiuk closed 6 years ago

vmykhailiuk commented 7 years ago

Currently only connectionless protocol classes are supported. It's needed to add message class for connection-oriented protocol class messages and add classes for parameters used in them.

Going to create pull request (major patch) with corresponding changes.

vetss commented 7 years ago

Hello @vmykhailiuk

thanks for your work for SCCP connected oriented messages implementeation. I have added you PR https://github.com/RestComm/jss7/pull/240 to a master branch and hope for finishing of the implementation.

See my comments below:

1) please pay attention on code style checking (you can just run "mvn clean install" command to check it). See my extra update https://github.com/RestComm/jss7/commit/37443e4ec69516257fb7e5b6756a5db80280c4a5 to understand a reason. Also we have code style demands for contributors, you can check the following link: https://github.com/RestComm/parent/wiki/ContributeToMobicents

2) which parts of SCCP connected-oriented staff are you going to implement (from Q.711): a) permanent connecions b) temporary connections b1) X.213 style b2) SUP-embedded c) implementation of N-RESET support

3) You added a SccpConnMessage interface that looks like a representation of all connected-oriented messages. Better to implement a separate interface per a message. We can extend SccpMessage as a base interface.

4) We have MessageFactoryImpl class that should be used for message creating. It needs to be updated for it.

5)

ReleaseCauseValue getValue();
int getIntValue();

(and two types of constructors / setters). getValue() will return a value only for values that are present in spec, getIntValue(); will return value in all cases

6) We use now a file header with "TeleStax" company name (instead of "jboss") for added files, example is : https://github.com/RestComm/jss7/blob/master/map/map-api/src/main/java/org/mobicents/protocols/ss7/map/api/primitives/TMSI.java Please use this style for your further implementation

7) Just for info - we reuse now for connection-less messages a special parameter networkId for identifying of remote network to which we have a connection (it is wide used for message routing). Please add support for this into connected-oriented messages. You can check info in: http://documentation.telestax.com/core/ss7/SS7_Stack_User_Guide.html#_design_multitenancy

8) We need to implement unit tests for checking of (de)serializing of messages / parameters and for further messageflow like we have now for connectionless operations. The first part you are adding is - messages / parameters so we will need to add unit tests firtsly for them. It will be the best if you have message examples form live traces and will be able to implent such tests based on this.

vetss commented 7 years ago

Partly fixed by:

https://github.com/RestComm/jss7/commit/d43d74da54373983b2363bedcc202b5995a613ab https://github.com/RestComm/jss7/commit/fda44f9c91295c6cf19280cf74faa8900cce250c https://github.com/RestComm/jss7/commit/8b0339dedd1c81811da5fb2a8dd43302e05db677 https://github.com/RestComm/jss7/commit/ce10757d376c9ee0e2846a297a336030cb6c65b9 https://github.com/RestComm/jss7/commit/4602ebfee98bee5d775810f50a3eb488c2cd500d https://github.com/RestComm/jss7/commit/2f986b4390f5dbbfab86ccd1552d7ab958c7b214 https://github.com/RestComm/jss7/commit/23ad11ceaf89f1df035089647f3d5701f1318adb https://github.com/RestComm/jss7/commit/a55627ec9d37925c3073fdef4cc290dcf13e8fc1 https://github.com/RestComm/jss7/commit/41dc0bf0bcbcf3fb338d0923190e933827e4de41 https://github.com/RestComm/jss7/commit/855d5b5f9e56f16c8203473abee8d77b2f9f212b https://github.com/RestComm/jss7/commit/44218eb4af89b1adc2ac60b47dc2aa54aaf51166 https://github.com/RestComm/jss7/commit/2cac8f2b0f595e504b4e2e146992b9909421b453 https://github.com/RestComm/jss7/commit/d30c32d0baa39c25d1957f366eb4eb26d10325a9 https://github.com/RestComm/jss7/commit/132bf67ec9ce55a9712292241938af95e3c876a0 https://github.com/RestComm/jss7/commit/1034164743d55181eef4c4c7a660c2694182c322 https://github.com/RestComm/jss7/commit/486d2271ecb1529e51a4cd26b8d015cfc40fee68 https://github.com/RestComm/jss7/commit/41dc0bf0bcbcf3fb338d0923190e933827e4de41

vmykhailiuk commented 7 years ago

Hi @vetss

  1. I’m implementing X.213 style temporary connections and reset procedures.

Thanks for comments, reviewing and accepting PR #240.