First of all, thank you for the great work and for releasing such a wonderful project.
I would like to know more about the queuing features implemented and, more generally, about using OSERL in production scenarios. I am fairly knowledgeable about how SMSCs work and writing applications in other languages which use UCP/SMPP. On the other hand, Erlang is new to me so please bear with me if some things seem obvious to you but I don't get them.
- in another application that I wrote, I use a shared queue of messages and try to deliver messages to SMSC via multiple simultaneous connections. Each connection sends in its own pace and will pickup from the available queued messages whenever its ready. Is this scenario supported by oserl?
- what happens with the queue if the ESME crashes? is the content lost ? can the sending be resumed if ESME is restarted?
- does the queue survive on disk between Erlang VM restarts? Is there any special procedure required for resuming sending from where was left before shutdown?
- can I have multiple queues simultaneously and pools of connections which consume outgoing messages from certain queues?
- how can I control the sending throughput at connection level?
- how can I process delivery receipts in my code? Where do I need to hook in so that I can receive them?
- is there any feature to allow processing of incoming messages sent by subscribers to a short number… more exactly: does oserl have features for receiving MO messages?
- can you give a short example which shows how to setup oserl so that if a connection crashes, the process is automatically restarted? What is the recommended approach?