Hi!
I'm just writiing this up as you mentioned that you were considering to look into implementing an external SMSC. This is great news, and of course you can do it whatever way you want to do it.
However, to put things a bit more into perspective and ensure that this SMSC can also be used in a real GSM core network later on, I would like to ask you to consider staying in line with how the primitives/transacitions look like in a real GSM network.
The idea here is that with every new interface we introduce in osmo-nitb, we should try ot move towards that of a real network. This does't mean that it has to implement the actual detailed MAP/TCAP/SCCP encoding as specified, but simply that they semantic of the primitives/messages and their order and time of occurrence is the same.