gen_mc_session fails to handle multiple binds

  • ochemann

    ochemann - 2011-10-13

    Hi. I am using the MC module of oserl to accept multiple connections from ESMEs. However, I get a problem with unbinding. When one of the ESMEs unbinds, the whole module goes down. Seems the unbind isn't killing just its session like it is supposed to. Any ideas?

  • Enrique Marcote Peńa


    Please note that gen_mc was written for testing purposes only.  We wrote OSERL mainly to implement an ESME for MT based services.

    You may take the current gen_mc as an example, but it is very likely that you will need to roll your own gen_mc to fit your particular needs.

    In case you are using the code in the package, I would rather recommend you to fetch the latest code from the repository.  It includes several important changes.

    Best regards,


  • ochemann

    ochemann - 2011-10-17

    Aaah I see, that explains why the esme module seems more stable that the mc module.

    However back to my issue, I realized the problem might be in the gen_mc_session module. Apparently finite state machines are used to handle connections to ESMEs.

    Seems when two ESMEs connect, gen_mc_session uses the same instance of gen_fsm to handle the connections. So, when one ESME unbinds, the state of the FSM changes to "listen" yet the other ESME's state should be "open". This causes a conflict of stated and hence crushes the entire module.

    Any ideas on how I can fix this?


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks