Skip to content

Conversation

@AlerantAppNGIN
Copy link

The modifications consists the new multiclient package and the disable configuration persistence feature as desctibed in issue #10.
Please, comment and ask me if you have any questions.
Thank you,
Gábor

pocsajimiklos and others added 27 commits February 10, 2015 11:13
Added necessary gitignores
- multiplexers (and underlying multichannels) can be stopped by Management
new system property:
sctp.enableBranching=true/false: it controls if new sctp associations are branched of from multiChannel after communication is up or not.
… already in use error thrown on recconect attempts
added named threads
added some documentation
… now is able to be configured through MultiManagementImpl
…anagementImpl to comply with the Management API changes (see issue RestComm#8 of the original Mobicents project: RestComm#8)
fix race condition bug in branching
add some extra logging
… event and the channel is not closed properly
…NIT message flow

Extend the API to be able to set a secondary peer address to associations and modify INIT flow
to use this secondary peer address if connection establishment with the primary peer address is failed.
@deruelle
Copy link
Member

@AlerantAppNGIN it looks like there is a lot of changes in this and it has conflicts with the master. Can you rebase your work ? Did you try with the new netty based master ?

@AlerantAppNGIN
Copy link
Author

Hi @deruelle,
I’ll have to examine the new netty based SCTP implementation but if I understand it right it doesn't support one-to-many type client associations either so our modifications would still provide new functionality.

Please note that our "multiclient" SCTP implementation isn't a complete implementation of the Restcomm SCTP API: it only supports client type "SCTP" associations.
I also have to mention that our solution has a drawback by design. To work around the difference in the session establishment flow of one-to-one and one-to-many type associations, the stack sends an SCTP DATA message with configurable dummy content to establish the SCTP connection. This worked well in our production environment, but it might not be a generally acceptable solution.
For these reasons I think that our multiclient solution should exists as a separate, alternative implementation of the Restcomm SCTP API.

To answer your question, we are planning on creating a new netty based version of our work, but you should consider how you want to list these solutions (netty and non-netty based multiclient implementations) in your repository. We are also open to modify our work to be a complete SCTP implementation, ideas on how to achieve this goal are welcome, particularly regarding the session initiation procedure.

Regards,
Gabor Balogh as @AlerantAppNGIN

@deruelle
Copy link
Member

Ok I'll let @vetss comment on what makes most sense here and if it makes sense to merge it in the non-netty branch.

A more complete SCTP implementation based on netty is certainly a good idea. @vetss can drive this discussion as well.

@vetss
Copy link
Contributor

vetss commented Aug 18, 2016

Hello @AlerantAppNGIN @deruelle

but if I understand it right it doesn't support one-to-many type client associations
either so our modifications would still provide new functionality.

you are right no of SCTP version supports one-to-many type associations.

I have revised again your update. The core of our SCTP project implementation is org.mobicents.protocols.api.Management interface that contains staff for managing SCTP servers / associations (adding / deleting / specifing of parameters and persisting of current config set). Under this we have some classes that provide concrete functionality. As for now we have two implementing of Management interface:

  • "old" nio - org.mobicents.protocols.sctp.ManagementImpl
  • "new" netty - org.mobicents.protocols.sctp.netty.NettySctpManagementImpl

Your update does not touch Management interface (so you do not provide any possibility to have management of new staff via Management interface). This is some design disadvantage.

You provide only disabling of persisting functionality into Management interface. We can accept this.

For these reasons I think that our multiclient solution should exists as a separate, alternative implementation of the Restcomm SCTP API.

It is desirable to have a management solution for one-to-many type associations via Management interface to have a single and clear design for a whole project. If you need we can discuss it.

What can I do:

  • most of your work is a new staff, new files. To avoid a work for merging conflicts I can just add new files into a master branch (if you point me a repo/branch with actiual files version)
  • I can also add an option for disabling of config persistion

@AlerantAppNGIN
Copy link
Author

Hello @vetss,

Thank you for the review.
I like the idea to modify the Management interface. I think we should discuss it before we add any new code to the repo.
I'll start working on this issue in a week, I'll contact you soon.

Regards,
Gabor

@vetss
Copy link
Contributor

vetss commented Aug 25, 2016

Thanks @AlerantAppNGIN for update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants