RE: How to send SMS to customers by using SMS API on invoicing from AX?
Sales invoice posting is done in SalesInvoiceJournalPost class.
Let me explain once more why calling the web service synchronously would be a very bad design.
Imagine that calling the service takes two seconds. If you do the call synchronously, every single posting will be delayed by two seconds, which wouldn't be a good news for users and customers, and potential locks in database would be held for extra two seconds, which could decrease performance of other processes as well.
And now imagine that the SMS service is down completely. You'll get an error and the whole posing will fail, so your client may end up losing money because customers won't be able to complete their orders, for example (depending on actual business processes).
If you want a separate table, a good approach would be writing a message to this table (with Invoice ID etc.) and having a periodic process that reads unsent messages, calls the service and updates status codes. Not only you'd avoid the problems mentioned above, but it would automatically support re-sending of failed messages.
If you want to trigger sending immediately on posting, you still shouldn't do it synchronously. Utilize SysOperation framework to implement the logic and then use on of asynchronous execution modes.